正如现在设置的那样,我在 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 来阻止它,但这会冻结所有滚动。
我的问题是,为什么它首先会一直滚动到底部?当用户单击屏幕上其他位置的按钮时添加文本,并且滚动与任何手指拖动或任何事情无关。