iOS开发之Bug--UITextField使用时文字向下偏移问题

这个问题,在以前项目中偶然遇到过,可是bug不明显,也不知道具体是哪一种重现方式重现的,因此一直暂时略过了,可是随着项目的系统的规模变大,代码量越多,ios

这个问题出现的愈来愈明显了。布局

因而就只能靠百度和google了,而后体会到百度是没有成功的结果的,可是google却有成功的结果:http://blog.csdn.net/qq_29892943/article/details/50515150测试

下面就拷贝复制做者的笔记:google

最近在使用UITextField这个控件的时候,忽然发现了一个问题,就是原本用起来没问题的,可是忽然在输入文字以后切换到后台,而后再切换到前台,这时候在继续输入文字,会发现UITextField里面的文字往下偏移了,并且还会出现闪现等问题。因而,各类测试找答案,终于揪出了这个问题的关键点。
首先,个人这个问题出如今UINavigationController身上,ios7.0以后,当在UINavigationController的管理下push到一个新界面的时候,默认的新界面的frame自动下拉了64(也就是导航栏和状态栏的高度),底部不会变,依然会在屏幕的最下方。其实这一切都是automaticallyAdjustsScrollViewInsets在做怪。self.automaticallyAdjustsScrollViewInsets 这个属性是IOS7才有的新方法,目的就是为了让scrollView自动适应屏幕。这个属性默认时yes,也就是自动在UINavigationController的push下,自动让下一个界面的屏幕的frame下拉了64。要否则,若是下一个界面时tableview,那么导航栏早就把tableview里面的第一行数据给盖着了。因此,UITextField出现这样的问题,也是automaticallyAdjustsScrollViewInsets在中间搞的鬼,因此只要咱们加入self.automaticallyAdjustsScrollViewInsets=NO;就能够解决了。并且当咱们一个界面有多个tableView之类的,将它设置为NO,彻底由本身手动来布局,也不会形成错乱。.net

相关文章
相关标签/搜索