关于IQKeyBoardManager挤出导航栏的解决方案
方法一:
写在前面
虽然修改后能解决导航栏被挤出去的问题,可是就目前来看是有反作用的,写这篇文章就是想你们来一块儿讨论,毕竟键盘处理仍是比较头疼的。app
如何修改
其实我也就注释了一段代码ide
文件位置:IQKeyManager>Categorise>IQUIView+Hierarchy.mui

注释了框出来的代码,前面也说了,这样作虽然能解决问题可是是有反作用的spa
目前已经发现的修改后的bug
1.当push后立马给输入框获取焦点的时候,收起键盘后,self.view会向上偏移64个单位,也就是导航栏的高度。.net
原理是若是不注释这段代码,那么该方法返回的是导航栏控制器,IQKeyBoard会将导航栏控制器的view一块儿偏移,注释掉后返回的就是viewController而不是NavigationViewController。blog
eg:
-(
void)viewDidLoad{ [super viewDidLoad]; self.title = @"键盘处理"; _inputTV = [[UITextView alloc] init]; [self.view addSubview:_inputTV]; [_inputTV mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(self.view); make.top.equalTo(self.view).offset(20); make.height.equalTo(@40); }];
尝试
我只是猜测,由于IQKeyBoard是经过注册各类通知,TextView 、UITextField 还有键盘的通知,是否是在viewdidload里 becomeFirstResponder时,通知发送顺序的影响加上我注释了那段代码(由于不注释是没有问题的)。
因此,我改在viewDidAppear里 becomeFirstResponder,解决问题,固然,这不是最好的解决方案。input
方法二:
IOS8以后UINavigationController新增的键盘弹出时导航栏自动隐藏的特性致使的。个人解决方案是设置self.navigationController?.hidesBarsWhenKeyboardAppears = true
self.navigationController?.hidesBarsOnTap = true 这两个属性 具体的能够测一测
方法三:
把界面全部的東西裝進 scroollview就能够
方法四:
[IQkeyBoardxxxx sharedXXXX] 拿到manager enable = NO , 或者Toolxx = NO 我记得在Apper 的disappear里面写就行
iOS小问题——关于使用IQKeyBoardManager第三方的坑
http://blog.csdn.net/sinat_24363257/article/details/47834695
以上都是参考别人的,记录一下,供本身之后研究使用!string