iOS技术中心iOS开发技术部落iOS进阶之路

iOS开发之处理键盘问题神器IQKeyboardManager

2016-09-14  本文已影响2045人  Ke_Wang

键盘问题可能是每个项目中都可能遇到的问题,如果输入框位于屏幕的底部,弹起的键盘很可能挡住输入框,导致用户就看不到输入结果(吐槽一下网易将军令->游戏助手->游戏精灵)就是这样,问个问题自己都不知道输入的是啥,不知道输入的对不对,体验较差。以前遇到这种问题的时候一直纠结怎么处理,设置来设置去的,很是麻烦,自己也搞晕了,后来在地铁上无事看一个微信公众号推送技术文章的时候,发现了这个库,IQKeyboardManager。它是iOS中解决键盘弹起遮挡UITextField或者UITextView的一种很犀利的工具,就像文章说的那样,零行代码解决键盘问题。一试之下果然好用,于是一股脑将自己的项目都添加上了。
swift 也是支持的,我这里还是用的OC。

IQKeyboardManager的github地址

安装的时候只需要pod 一下就可以

pod 'IQKeyboardManager'

使用(几个用到的方法)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //键盘
    [IQKeyboardManager sharedManager].enable = YES; //默认值为NO.
    [IQKeyboardManager sharedManager].enableAutoToolbar = NO;//不显示工具条
    [IQKeyboardManager sharedManager].shouldResignOnTouchOutside = YES;//点空白处收回
}
- (void)viewWillAppear:(BOOL)animated{
  [super viewWillAppear:animated];
   [IQKeyboardManager sharedManager].enable = NO;
}
//注意,这个一定要设,不然会出奇葩的问题,有些地方也不可用,也就是出个这个view要重新设置回去
- (void)viewWillDisappear:(BOOL)animated{
  [super viewWillDisappear:animated]; 
  [IQKeyboardManager sharedManager].enable = YES;
}

- (void)viewDidLoad {
    [super viewDidLoad];

    [IQKeyboardManager sharedManager].shouldResignOnTouchOutside = YES;
}

常用的属性

[IQKeyboardManager sharedManager].keyboardDistanceFromTextField = 0.0f;
[IQKeyboardManager sharedManager].preventShowingBottomBlankSpace = NO;

当然这个框架还有很多用得到的 地方,不过目前就用了这一点点,先记录下来,以后用到再补充。

上一篇下一篇

猜你喜欢

热点阅读