现在设置,我在UIScrollView中有两个UITextView。这一点是UITextViews本身不滚动,随着更多文本的添加,它们只会变大(它们的内容大小)。 UIScrollView处理视图的所有向上和向下滚动,无论文本有多少(与主题视图位于消息视图上方的Mail.app类似,等等)。那就是说,我现在遇到了一个问题。当我以编程方式将文本添加到我的UITextView(在此代码中为bodyText)时,UIScrollView会因某种原因自动滚动到底部。
要添加我刚刚做的文字:
NSRange selectedRange = [bodyText selectedRange];
NSString *selectedText = [bodyText.text substringWithRange:selectedRange];
bodyText.text = [bodyText.text stringByReplacingCharactersInRange:selectedRange withString:[NSString stringWithFormat:@"<b>%@</b>", selectedText]];
因此,例如,如果我有垂直2000个像素的文本并且当前滚动到位置400然后在那里添加文本,那么UIScrollView将一直下降到2000.
我试图通过继承UISCrollView并覆盖-setContentOffset来阻止它,但那会冻结所有滚动。
我的问题是,为什么它首先一直滚动到底部?当用户点击屏幕上其他位置的按钮时,文本就会被添加,滚动与任何手指拖动或任何东西无关。
答案 0 :(得分:0)
在“滚动视图编程指南”中,您将获得:
使矩形可见
也可以滚动 矩形区域,所以它 可见。这特别有用 当应用程序需要显示一个 目前在...之外的控制 可见区域进入可见视图。 scrollRectToVisible:动画: 方法滚动指定的矩形 所以它只是在里面可见 滚动视图。如果是动画参数 是的,矩形滚动到 以恒定的速度观看。和。一样 setContentOffset:animated:,if 动画被禁用,代表是 发送了一个scrollViewDidScroll: 信息。如果启用了动画,则 代表被发送了一系列 scrollViewDidScroll:消息为 动画进展。如果是 scrollRectToVisible:animated:the 滚动视图的跟踪和拖动 属性也是NO。
如果启用了动画 scrollRectToVisible:animated :, the 代表收到一个 scrollViewDidEndScrollingAnimation: 消息,提供通知 滚动视图已到达 指定的位置和动画是 完整。
因此,您可以使用此功能锁定UITextView上的可见性。