【问题标题】:NSLinkAttribute cancel scrolling when not editableNSLinkAttribute 在不可编辑时取消滚动
【发布时间】:2017-12-01 04:27:40
【问题描述】:

我有以下设置:

带有一些文字的UITextView,其中一些是链接

当我将isEditable 值设置为false 时,当点击那些现在可以操作的链接 时,我无法初始化任何滚动。

如何使从链接开始的触摸事件实际拖动 UITextview 当用户做滚动手势时。

【问题讨论】:

    标签: ios swift uiscrollview uitextview


    【解决方案1】:

    要克服这个困难,步骤如下:

    假设您有一个继承自UIScrollView 的类,例如 RichTextView : UITextView(因为UITextView 继承自UIScrollView),那么你就有了panGestureRecognizer 的属性。该属性保存指定的滚动手势识别器。

    下一步是创建一个委托来分配给这个手势识别器,让我们编写所需的代码:

    extension RichTextView : UIGestureRecognizerDelegate {
        func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
            return true
        } 
    }
    

    所以在你的 init() 或者需要的时候写:

    panGestureRecognizer.delegate = self
    

    为什么会这样?

    儿童识别器,在这种情况下,为使链接可点击而创建的识别器正在取消手势。因此需要同时将手势传递给所有识别器

    更多详情请参考Apple Docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-14
      • 1970-01-01
      • 1970-01-01
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多