在IOS开发中,UITextView输入超出限制的文字时,在输入或删除文字是,会有跳动的现象,用户体验极差。
一、首先肯定想在UITextView的代理中修正问题,不过这是行不通的
不行
二、查看UITextView文件,发现继承至UIScrollView
是否可以在收到text变动的delegate时,我们自己将文本区域滚动到最下方,像这样:
self.contentOffset = CGPointMake(0, self.contentSize.height - self.frame.size.height);
不行
三、OK的方法 (NSLayoutManager属性)
不要相信苹果的注释,他们说默认值是NO(除此之外的注释还是要相信的)。必须要手动设置为NO,才不会跳动。
self.layoutManager.allowsNonContiguousLayout = NO;
这句代码设置了 UITextView 中的 layoutManager(NSLayoutManager) 的是否非连续布局属性,默认是 YES,设置为 NO 后 UITextView 就不会再自己重置滑动了。