關於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