在iOS的Notes应用程序中,我在TextView上写了很长的文本,
然后我长按视图,调出放大镜,将其拖到屏幕底部(或键盘顶部,如果它被激活),TextView将自动向上滚动。
如何使用UITextView
实现此功能?
我试着
- 添加
UILongPressGestureRecognizer
到我的UITextView
子类,但它的动作从未被调用。 - 在我的
UITextView
子类中重写touchesMoved:withEvent:
方法,但该方法在放大镜出现后不会被调用。
你没有实现它;这是标准行为。
当你将放大镜从UITextView的底部或顶部拖动时,放大镜滚动发生,或者当你靠近边缘时,大约10像素?(最好在模拟器中进行测试,在模拟器中可以精确控制触摸位置)。如果你的文本视图是全屏的,你可能无法拖动到视图外的位置,并且用于滚动的触摸区域可能太小了。
注意,在Notes应用程序中,要向下滚动,你可以将放大镜拖到底部的选项卡上。你可以把它拖到标题上。只要你在视图外按住触摸,它就会滚动。
所有这一切也意味着当你的视图出现时,它不能走到键盘后面。当键盘出现时,您需要调整UITextView的大小以使滚动工作