5

我需要在同一个视图上检测平移和点击,但点击动作也是平移的第一个动作,所以我假设点击动作需要平移动作失败,但是它是否会延迟,因为它必须等待稍微了解一下是否在轻敲之后是平移的动作?

谢谢

4

3 回答 3

11

点击动作不是平移的第一个动作。点击发生在触摸之后(例如用户抬起手指)。平移发生在触摸仍然按下时(例如,手指在屏幕上按下并开始移动)。

试试看,它会正常工作的。

于 2013-03-09T04:34:05.547 回答
6

我知道这是个老问题,但如果有人在搜索中找到这个,他们可以试试这个

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, 
         shouldRequireFailureOf otherGestureRecognizer: UIGestureRecognizer) -> Bool {
   // Don't recognize a pan gesture until a tap fails.
   if gestureRecognizer == self.panGesture && 
          otherGestureRecognizer == self.tapGesture {
      return true
   }
   return false
}

那么到底发生了什么。我们收到了 Pan 的请求,需要检查这是否是 Tap。所以在这里它会检查并说它PanGesture应该在做出反应之前等待TapGesture失败。你可以对其他重叠的手势做同样的事情。

有关更多信息,请参阅首选一个手势而不是另一个

于 2018-05-31T08:44:00.120 回答
2

除非你这样做,否则不会有冲突。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}
于 2013-03-09T04:43:12.703 回答