如果滚动条处于底部,则在文本附加后自动滚动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模拟器中测试,您可以复制代码的各个部分并将它们粘贴到您的代码中。

具体来说:

  1. 复制上监听2个通知keyboardWillShow和keyboardWillHide在viewDidLoad中的代码。
  2. 在dealloc中复制释放通知的代码。
  3. 删除viewDidDisappear中的通知监听状态。
  4. 在keyboardWillShow,keyboardWillHide中复制代码以编程方式计算键盘的高度并自动滚动文本。
  5. 通过调用[textView resignFirstResponder];移除textViewShouldEndEditing中的键盘;
  6. 如果你希望在纵向和横向都实现这个功能,上面的代码已经可以完成必要的计算。你所要做的就是让旋转在shouldRotateToInterfaceOrientation