你能在Swift中为同一个手势拥有多个识别器吗?

时间:2018-03-18 21:47:30

标签: ios swift uigesturerecognizer

我有一种情况,我需要在Swift中的同一元素上为同一个手势设置多个识别器。对于上下文,我已经编写了一个UIView扩展,它可以自动添加手势识别器以进行点击和滑动手势,以便轻松跟踪事件。

这一切都运行良好,直到发现在一个已经在点击事件上做了其他事情的元素上使用我的扩展(导航到另一个页面)导致现有的点击行为不再发生。

如何在同一元素上拥有多个UITapGestureRecognisers并将它们全部触发,而不仅仅是最近添加的那个?

我试过了:

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

经过进一步的研究后,似乎在我的手势识别器截获相应的事件并处理它之后,该事件不会传递给UI以便正常处理。这不是由于同一手势的两个冲突识别器,而是由于我的点击识别器未在完成后发送事件。有人知道如何处理识别器中的手势然后将其传递到链中吗?关于响应者链的搜索和阅读没有任何结果。

0 个答案:

没有答案