【问题标题】:How do I make my UITextView autoscroll when dragging caret to the edge of view?将插入符号拖动到视图边缘时如何使 UITextView 自动滚动?
【发布时间】:2013-03-18 10:56:31
【问题描述】:

在 iOS 的 Notes 应用中,我在 TextView 上写了很长的文字,

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

如何使用UITextView 实现此功能?

我试过了

  • UILongPressGestureRecognizer 添加到我的UITextView 子类,但它的操作永远不会被调用。
  • 在我的UITextView 子类中重写touchesMoved:withEvent: 方法,但在放大镜出现后不会调用此方法。

【问题讨论】:

  • 你到底想要什么?
  • @Sunny 我希望我的 UITextView 在我将放大镜拖到视图边缘时自动滚动。
  • 当你做那个时调用哪个方法?
  • @Sunny 问题是我找不到那个回调方法

标签: ios objective-c uikit uitextview


【解决方案1】:

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

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

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

所有这一切也意味着当它存在时,您的视图不能移到键盘后面。当键盘出现时,您需要调整 UITextView 的大小以使滚动生效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    相关资源
    最近更新 更多