【问题标题】:Executing pan gesture recognizer ONLY after long press recognizer has fired仅在长按识别器触发后执行平移手势识别器
【发布时间】:2017-09-13 01:17:13
【问题描述】:

我正在尝试使用平移手势识别器为我的 UIView 实现拖放 UI。我有那段代码工作,但现在我只想在用户长时间按下我的待拖动视图后才执行拖放逻辑。

我正在实现以下问题中的代码 Recognize long press and pan gesture recognizers together 但这并不是我想要的。有什么想法吗?

【问题讨论】:

    标签: ios uigesturerecognizer uipangesturerecognizer uilongpressgesturerecogni


    【解决方案1】:

    将您的视图控制器设置为平移手势识别器的代理。

    实现gestureRecognizerShouldBegin(_:) 方法。在长按手势识别器触发之前返回 false。

    【讨论】:

    • 我是否只是在我的 VC 中的某处保留一个标志以查看长按手势是否已开始?还是有更好的方法?
    • 一个标志似乎是一种合理的方式。
    【解决方案2】:

    发现另一个帖子的标题有点误导,所以我第一次没有仔细研究它。 Combine longpress gesture and drag gesture together

    原来,UILongPressGesture 已经可以帮我实现我想要的拖放效果了。这意味着我根本不需要UIPanGesture。我只是将选择器/处理程序用于长按手势的平移手势。除了长按手势没有translation属性,所以我用

    myView.center = sender.location(in: myView.superview)
    

    达到同样的拖拽效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      相关资源
      最近更新 更多