【发布时间】:2010-04-08 12:00:40
【问题描述】:
我有一个由 UIScrollView 组成的视图,其中包含一个 UITextField、一个 UILabel 和一个 UITextView。我想配置视图,以便当用户在 textview 中键入文本时,滚动视图将滚动以保持键入的行可见。
【问题讨论】:
标签: iphone uiscrollview uitextview
我有一个由 UIScrollView 组成的视图,其中包含一个 UITextField、一个 UILabel 和一个 UITextView。我想配置视图,以便当用户在 textview 中键入文本时,滚动视图将滚动以保持键入的行可见。
【问题讨论】:
标签: iphone uiscrollview uitextview
在-[UITextViewDelegate textView:shouldChangeTextInRange:replacementText:] 中,您需要监控显示的文本量并计算是否滚动了屏幕。然后相应地调整滚动视图的setContentOffset:animated:。
但是,最好的选择是根本不要尝试在滚动视图中进行编辑。相反,使用单独的详细视图来编辑文本,并使用更复杂的滚动视图来显示文本。换句话说,将滚动视图视为表格,将文本视图视为表格中的一行。您选择文本视图,它会打开一个详细视图,就像在表格中一样。
请记住,您的用户希望 iPhone 上有层次结构。滑到另一个屏幕输入文本是一种非常常见的 UI 行为,它不会使他们迷失方向。他们将欣赏使用除了输入文本之外什么都不做的视图更容易。
从侧边栏看到这个问题:iPhone Auto-scroll UITextView but allow manual scrolling also
【讨论】: