首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当UITextField文本更改时,UIScrollView滚动到底部

当UITextField文本更改时,UIScrollView滚动到底部
EN

Stack Overflow用户
提问于 2011-02-19 11:10:33
回答 1查看 1.6K关注 0票数 1

按照现在的设置,我在UIScrollView中有两个UITextViews。这样做的要点是UITextViews本身不会滚动,它们只是随着添加更多的文本而变得更大(其内容大小)。无论有多少文本,UIScrollView都会处理视图的所有上下滚动(考虑类似于主题视图位于邮件视图上方的Mail.app )。也就是说,我现在遇到了一个问题。当我以编程方式将文本添加到UITextView (在此代码中为bodyText)时,由于某种原因,UIScrollView会自动滚动到底部。

要添加文本,请执行以下操作:

代码语言:javascript
运行
复制
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来阻止它,但这会冻结所有的滚动。

我的问题是,为什么它一开始会一直滚动到底部?当用户单击屏幕上其他位置的按钮时,会添加文本,并且滚动与手指拖动或任何其他操作无关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-20 02:30:05

在Scroll View Programming Guide中,您可以获得:

使矩形可见

也可以滚动矩形区域,使其可见。当应用程序需要将当前位于可见区域之外的控件显示到可见视图中时,这尤其有用。scrollRectToVisible:animated:方法滚动指定的矩形,使其仅在滚动视图中可见。如果动画参数为YES,矩形将以恒定的速度滚动到视图中。与setContentOffset:animated:一样,如果禁用动画,则会向代理发送一条scrollViewDidScroll:消息。如果启用了动画,则随着动画的进行,将向代理发送一系列scrollViewDidScroll:消息。在scrollRectToVisible:animated的情况下:滚动视图的跟踪和拖动属性也是NO。

如果为scrollRectToVisible:animated:启用了动画,则代理将收到scrollViewDidEndScrollingAnimation:消息,通知滚动视图已到达指定位置且动画已完成。

因此,也许您可以使用此功能来锁定UITextView上的可见性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5048597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档