将插入符号拖动到视图边缘时,如何使我的UITextView自动滚动?

时间:2013-03-18 10:56:31

标签: ios objective-c uikit uitextview

在iOS的Notes应用程序中,我在TextView上编写了很长的文本,

然后我长按视图,调出放大镜放大镜,将其拖到屏幕底部(或键盘顶部,如果已激活),TextView将自动向上滚动。

如何使用UITextView实现此功能?

我试过

  • 向我的UILongPressGestureRecognizer子类添加UITextView,但其操作永远不会被调用。
  • 覆盖touchesMoved:withEvent:子类中的UITextView方法,但放大镜放大镜出现后不会调用此方法。

1 个答案:

答案 0 :(得分:2)

你没有实现它;这是标准行为。

当您将放大镜从UITextView的底部或顶部拖出时,或者当您靠近边缘时,大约10个像素,会发生放大镜滚动? (最好在模拟器中测试这一点,以便对触摸位置进行精确控制)。如果您的文本视图是全屏的,则可能无法拖动到视图外的位置,并且用于滚动的触摸区域可能太小。

请注意,在Notes应用程序中,您可以将放大镜拖动到底部的选项卡上。要上去你可以将它拖到标题中。只要你在视图外面触摸它就会滚动。

这一切也意味着当你的视图存在时,你的视图不会在键盘后面。当键盘出现以使滚动工作时,您需要调整UITextView的大小。