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

时间:2010-04-20 22:31:00

标签: iphone cocoa-touch

我不断向我UITextView的内容添加文字,并且只有在UITextView已经滚动到底部时才会自动滚动到最新更新。有关如何实施这一点的任何想法?

2 个答案:

答案 0 :(得分:1)

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

的组合
 myScrollView.contentOffset.y 

检测文本是否完全滚动,

[myScrollView zoomToRect:CGRectMake(x,y,height,width) animated:YES] 

将当前视图移动到新添加的文本。

请参阅UITextView和UIScrollView的文档。如果您还不知道,可以通过单击帮助>>开发人员文档

从XCode访问这些文件。

祝你好运!

詹姆斯

答案 1 :(得分:1)

对于那些想要在键盘出现/消失时自动滚动uitextview的人,请通过apple搜索并下载keyboardaccessory.xcodeproj。

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

具体做法是:

  1. 在viewDidLoad中监听keyboardWillShow和keyboardWillHide的2个通知时复制代码。
  2. 复制在dealloc中发布通知的代码。
  3. 删除viewDidDisappear中的通知侦听状态。
  4. 复制keyboardWillShow,keyboardWillHide中的代码,以编程方式计算键盘的高度并自动滚动文本。
  5. 通过调用[textView resignFirstResponder]删除textViewShouldEndEditing中的键盘;
  6. 如果您希望在纵向和横向中实现此功能,则上面的代码已经进行了必要的计算。你所要做的就是允许在shouldRotateToInterfaceOrientation
  7. 中轮换