標籤:
這個問題,在之前項目中偶然遇到過,但是bug不明顯,也不知道具體是哪種重現方式重現的,所以一直暫時略過了,但是隨著項目的系統的規模變大,代碼量越多,
這個問題出現的越來越明顯了。
於是就只能靠百度和google了,然後體會到百度是沒有成功的結果的,但是google卻有成功的結果:http://blog.csdn.net/qq_29892943/article/details/50515150
下面就拷貝賦值作者的筆記:
最近在使用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,完全由自己手動來布局,也不會造成錯亂。
iOS開發之Bug--UITextField使用時文字向下位移問題