UITextView 的坑:启动时文字位置不从顶部开始

最近实习中碰见了机型适配小问题,关于UITextView的问题,我在xib上用Autoresizing设置了UITextView和View的大小关系,xib 的预览尺寸选的是 View as: iPhone 7(注意这里,这里很坑)

UITextView 的坑:启动时文字位置不从顶部开始_第1张图片
xib界面设置.png

我要显示的内容的大小大概是UITextView的四倍,这些设置都没错,在iPhone 7上运行也是正常。

UITextView 的坑:启动时文字位置不从顶部开始_第2张图片
iPhone 7效果.png

可是在iPhone SE的设备上却是这样的,启动时文字位置明显下移了:


UITextView 的坑:启动时文字位置不从顶部开始_第3张图片
iPhone SE的效果.png

我自己查看了几遍,觉得不是自己设置的问题,结果我把xib 的预览尺寸设置为最小的尺寸 View as: iPhone 4,竟然直接全部正常了,,,,误打误撞弄好了

UITextView 的坑:启动时文字位置不从顶部开始_第4张图片
iPhone SE的正常效果.png

接着就是寻找原理,感谢戴仓薯的相关文章http://www.jianshu.com/p/0f728077d1ab (跟我的问题一样),内容中提到:在实际运行时,UITextView 的尺寸相比在 xib 里是缩小,而不是放大。所以要选择最小的尺寸来实现,当然,最好的还是如其文章所说的,采用代码的方式来完成布局。
或者可以在viewDidLayoutSubView中实现

-(void)viewDidLayoutSubviews{
    //置顶
    [_textView setContentOffset:CGPointZero animated:NO];
}

你可能感兴趣的:(UITextView 的坑:启动时文字位置不从顶部开始)