关于IQKeyboard把导航栏顶上去的处理办法

2018-04-28  本文已影响0人  小佛塔

IQKeyboard输入框上移的原理:

从输入框往底层找,如果找到的是scrollView,则scrollView往上滑,如果scrollView比较小,先把scrollView往上滑(这时候输入框还是不够高,但是scrollView再往上,输入框就已经滑出外面了,所以scrollView只能滑一定的高度),再往底层找能滑动的视图,如果只找到了VC.view,那么会把VC.view整体往上推,这样就出现了导航栏被推上去了的现象。用以下流程图可以更直观:

绿线,是我们希望的结果 

绿线是希望的结果,条件是有足够大的scrollView。导致导航栏上移的原因最终只有一个,没有可滑动视图而找到了self.view。所以,我们要制造一个足够大的scrollView

网上方法:将VC.view设为scrollView是不可取的,因为,很多时候导航栏是自定义的,不是系统的,导航栏是加在self.view上的,如果self.view往上推,加在self.view上的东西,都统统往上推了,所以不可取。


问题重现:

黑色蒙版是View,输入框也是View,直接加在self.view上 空白部分是textView,高度比较高,导航被推上去


一堆需要输入的控件都是加在scrollView上的,没有问题





解决方法:

把输入框放在一个足够大的scrollView上。想方设法制造一个大的scrollView。

黑色蒙版类型设为scrollView 把控件加在scrollView上
上一篇下一篇

猜你喜欢

热点阅读