最近實習中碰見了機型適配小問題,關(guān)于UITextView的問題,我在xib上用Autoresizing設置了UITextView和View的大小關(guān)系,xib 的預覽尺寸選的是 View as: iPhone 7(注意這里,這里很坑)
xib界面設置.png
我要顯示的內(nèi)容的大小大概是UITextView的四倍,這些設置都沒錯,在iPhone 7上運行也是正常。
iPhone 7效果.png
可是在iPhone SE的設備上卻是這樣的,啟動時文字位置明顯下移了:
iPhone SE的效果.png
我自己查看了幾遍,覺得不是自己設置的問題,結(jié)果我把xib 的預覽尺寸設置為最小的尺寸 View as: iPhone 4,竟然直接全部正常了,,,,誤打誤撞弄好了
iPhone SE的正常效果.png
接著就是尋找原理,感謝戴倉薯的相關(guān)文章http://www.lxweimin.com/p/0f728077d1ab (跟我的問題一樣),內(nèi)容中提到:在實際運行時,UITextView 的尺寸相比在 xib 里是縮小,而不是放大。所以要選擇最小的尺寸來實現(xiàn),當然,最好的還是如其文章所說的,采用代碼的方式來完成布局。
或者可以在viewDidLayoutSubView中實現(xiàn)
-(void)viewDidLayoutSubviews{
//置頂
[_textView setContentOffset:CGPointZero animated:NO];
}