如果滚动条处于底部,则在文本附加后自动滚动UITextView
问题描述:
我一直将文本附加到我的UITextView
的内容上,并且想要自动滚动到最新更新,仅当UITextView
已滚动到底部时。关于如何实现这一点的任何想法?如果滚动条处于底部,则在文本附加后自动滚动UITextView
答
UITextView继承自UIScrollView,因此您可以像使用UIScrollView一样访问所有相同的属性。就个人而言,我会使用的
myScrollView.contentOffset.y
的组合来检测文本是否被滚动一路下来,
[myScrollView zoomToRect:CGRectMake(x,y,height,width) animated:YES]
当前视图切换到新添加的文字。
请参阅UITextView和UIScrollView的文档。如果您还不知道,可以通过单击帮助>>开发人员文档
从XCode访问这些文件祝你好运!
詹姆斯
答
所有那些谁想要自动滚动一个UITextView键盘时出现/消失,搜索和下载苹果keyboardaccessory.xcodeproj。
尽管程序在ipad模拟器中测试,您可以复制代码的各个部分并将它们粘贴到您的代码中。
具体来说:
- 复制上监听2个通知keyboardWillShow和keyboardWillHide在viewDidLoad中的代码。
- 在dealloc中复制释放通知的代码。
- 删除viewDidDisappear中的通知监听状态。
- 在keyboardWillShow,keyboardWillHide中复制代码以编程方式计算键盘的高度并自动滚动文本。
- 通过调用[textView resignFirstResponder];移除textViewShouldEndEditing中的键盘;
- 如果你希望在纵向和横向都实现这个功能,上面的代码已经可以完成必要的计算。你所要做的就是让旋转在shouldRotateToInterfaceOrientation