我需要在同一个视图上检测平移和点击,但点击动作也是平移的第一个动作,所以我假设点击动作需要平移动作失败,但是它是否会延迟,因为它必须等待稍微了解一下是否在轻敲之后是平移的动作?
谢谢
我需要在同一个视图上检测平移和点击,但点击动作也是平移的第一个动作,所以我假设点击动作需要平移动作失败,但是它是否会延迟,因为它必须等待稍微了解一下是否在轻敲之后是平移的动作?
谢谢
点击动作不是平移的第一个动作。点击发生在触摸之后(例如用户抬起手指)。平移发生在触摸仍然按下时(例如,手指在屏幕上按下并开始移动)。
试试看,它会正常工作的。
我知道这是个老问题,但如果有人在搜索中找到这个,他们可以试试这个
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
失败。你可以对其他重叠的手势做同样的事情。
有关更多信息,请参阅首选一个手势而不是另一个
除非你这样做,否则不会有冲突。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}