IQKeyboardManager
IQKeyboardManager是一个自动解决键盘遮挡输入源的库。
输入源目前只有UITextView和UITextField;
解决方法是让界面内容上移到合适位置让输入框在键盘之上,或者点击屏幕空白处,键盘自动回收。
pod 集成 pod ‘IQKeyboardManager’
原理简述:
pod集成后,甚至可以一句代码不写都可以解决键盘遮挡问题,因为IQKeyboardManager类重写了+load方法,在程序编译的时候,runtime加载类到内存时,就会调用改方法。+load方法中添加了观察者监听键盘的变化,以及textfield、textview的编辑状态。并创建了一个tap手势,当键盘弹起时,放到window上。
使用方法:
1、 控制自动键盘功能启用与否 ( 默认为YES,关闭为NO)
[IQKeyboardManager sharedManager].enable = YES;
2、键盘弹出时,点击背景,键盘收回
[IQKeyboardManager sharedManager].shouldResignOnTouchOutside = YES;
3、设置键盘和输入框的间隔距离
[IQKeyboardManager sharedManager].keyboardDistanceFromTextField = 20;
4、隐藏键盘上面的toolBar,默认是开启的
[IQKeyboardManager sharedManager].enableAutoToolbar = NO;