美文网首页
UITextView粘贴大段文字后,文字出现了偏移,显示不全

UITextView粘贴大段文字后,文字出现了偏移,显示不全

作者: 北京旅游 | 来源:发表于2018-01-13 11:42 被阅读0次

问题:在我的APP中,有个聊天界面,底部的输入框是用TextView实现的,输入框自适应文字高度。由于用户需求,需要把字数输入限制提高到2000,用户很可能选择粘贴的方式粘贴大量的文字进入输入框。当输入框高度突然增大的时候,文字出现了上移的现象。轻轻温柔的触碰输入框,文字展示又正常了。

解决:使用Xcode的View Hierarchy查看文字有偏移状态的视图层级,发现TextView里有个子视图叫containerView,其作用是承载文字。文字偏移,归根结底是containerView发生了偏移。出现此问题的原因是UITextView继承了scrollview,在复制文字后输入框重新计算高度,重置其frame,但是子视图确没有被设置正确的高度。好吧,既然这样,我用代码滑动TextView,触发其重新布局:

[_textView scrollRectToVisible:CGRectMake(0, _textView.contentSize.height-15, _textView.contentSize.width, 10) animated:YES];

问题解决了。

相关文章

网友评论

      本文标题:UITextView粘贴大段文字后,文字出现了偏移,显示不全

      本文链接:https://www.haomeiwen.com/subject/bgccoxtx.html