最近实习中碰见了机型适配小问题,关于UITextView的问题,我在xib上用Autoresizing设置了UITextView和View的大小关系,xib 的预览尺寸选的是 View as: iPhone 7(注意这里,这里很坑)
我要显示的内容的大小大概是UITextView的四倍,这些设置都没错,在iPhone 7上运行也是正常。
可是在iPhone SE的设备上却是这样的,启动时文字位置明显下移了:
我自己查看了几遍,觉得不是自己设置的问题,结果我把xib 的预览尺寸设置为最小的尺寸 View as: iPhone 4,竟然直接全部正常了,,,,误打误撞弄好了
接着就是寻找原理,感谢戴仓薯的相关文章http://www.jianshu.com/p/0f728077d1ab (跟我的问题一样),内容中提到:在实际运行时,UITextView 的尺寸相比在 xib 里是缩小,而不是放大。所以要选择最小的尺寸来实现,当然,最好的还是如其文章所说的,采用代码的方式来完成布局。
或者可以在viewDidLayoutSubView中实现
-(void)viewDidLayoutSubviews{
//置顶
[_textView setContentOffset:CGPointZero animated:NO];
}