Iphone 如果滚动条位于底部,则在文本追加后自动滚动UITextView

Iphone 如果滚动条位于底部,则在文本追加后自动滚动UITextView,iphone,cocoa-touch,Iphone,Cocoa Touch,我正在不断地向我的UITextView内容添加文本,并且仅当UITextView已滚动到底部时,我希望自动滚动到最新更新。关于如何实现这一点有什么想法吗 UITextView继承自UIScrollView,因此您可以访问与UIScrollView相同的所有属性。就我个人而言,我会使用 myScrollView.contentOffset.y 检测文本是否一直向下滚动,以及 [myScrollView zoomToRect:CGRectMake(x,y,height,width) anima

我正在不断地向我的
UITextView
内容添加文本,并且仅当
UITextView
已滚动到底部时,我希望自动滚动到最新更新。关于如何实现这一点有什么想法吗

UITextView继承自UIScrollView,因此您可以访问与UIScrollView相同的所有属性。就我个人而言,我会使用

 myScrollView.contentOffset.y 
检测文本是否一直向下滚动,以及

[myScrollView zoomToRect:CGRectMake(x,y,height,width) animated:YES] 
将当前视图移动到新添加的文本

请参阅UITextView和UIScrollView的文档。如果您还不知道,可以通过单击“帮助>>开发人员文档”从XCode访问这些文档

祝你好运


James

对于所有希望在键盘出现/消失时自动滚动uitextview的用户,请搜索并下载apple提供的keyboardaccessory.xcodeproj

虽然程序在ipad模拟器中进行测试,但您可以复制部分代码并将其粘贴到您的程序中

具体而言:

  • 在viewDidLoad中复制侦听keyboardWillShow和keyboardWillHide的2个通知时的代码
  • 复制释放dealloc中通知的代码
  • 删除ViewDidDemove中的通知侦听状态
  • 复制keyboardWillShow、keyboardWillHide中的代码,以编程方式计算键盘高度并自动滚动文本
  • 通过调用[textView resignFirstResponder]移除textView Shouldediting中的键盘
  • 如果您希望在纵向和横向两种情况下都实现此功能,那么上面的代码已经完成了必要的计算。你所要做的就是允许在shouldroterateToInterfaceOrientation中旋转