我有一个由UIScrollView组成的视图,其中包含UITextField,UILabel和UITextView。我想配置视图,以便当用户在textview中键入文本时,scrollview将滚动以保持键入的行可见。
答案 0 :(得分:0)
在-[UITextViewDelegate textView:shouldChangeTextInRange:replacementText:]
中,您需要监控显示的文本量并计算是否滚动了屏幕。然后相应地调整滚动视图的setContentOffset:animated:
。
但是,最好的选择是不要在滚动视图中尝试编辑。而是使用单独的详细信息视图来编辑文本,并使用更复杂的滚动视图来显示文本。换句话说,将scrollview视为一个表,将textview视为表中的一行。您选择textview并打开一个详细视图,就像在表格中一样。
请记住,您的用户希望iPhone上的层次结构。滑到另一个屏幕以输入文本是一种非常常见的UI行为,它不会使它们迷惑。他们会欣赏使用除了输入文本之外什么都不做的视图的更容易。
从侧边栏中查看此问题:iPhone Auto-scroll UITextView but allow manual scrolling also