仅在长按识别器触发后执行平移手势识别器
Posted
技术标签:
【中文标题】仅在长按识别器触发后执行平移手势识别器【英文标题】: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 但这并不是我想要的。有什么想法吗?
【问题讨论】:
【参考方案1】:将您的视图控制器设置为平移手势识别器的代理。
实现gestureRecognizerShouldBegin(_:)
方法。在长按手势识别器触发之前返回 false。
【讨论】:
我是否只是在我的 VC 中的某处保留一个标志以查看长按手势是否已开始?还是有更好的方法? 一个标志似乎是一种合理的方式。【参考方案2】:发现另一个帖子的标题有点误导,所以我第一次没有仔细研究它。 Combine longpress gesture and drag gesture together
原来,UILongPressGesture
已经可以帮我实现我想要的拖放效果了。这意味着我根本不需要UIPanGesture
。我只是将选择器/处理程序用于长按手势的平移手势。除了长按手势没有translation
属性,所以我用
myView.center = sender.location(in: myView.superview)
达到同样的拖拽效果。
【讨论】:
以上是关于仅在长按识别器触发后执行平移手势识别器的主要内容,如果未能解决你的问题,请参考以下文章