我创建了两个滑动识别器:swipeRightRecognizer
& swipeLeftRecognizer
和一个捏合识别器:pinchRecognizer
。
当我捏合/张开时,捏合事件和向左滑动识别器事件都会被捕获。
我试过了
[swipeLeftRecognizer requireGestureRecognizerToFail:pinchRecognizer];
[swipeRightRecognizer requireGestureRecognizerToFail:pinchRecognizer];
但它不起作用。
如果没有更好的办法,我打算捕获触摸次数。我需要区分单指滑动和捏合。
有没有一种简单的方法可以区分捏合手势和滑动手势?
最佳答案
According to the docs requireGestureRecognizerToFail:
表示第一个手势仅在第二个手势失败时才正常进行;;所以在这种情况下,由于您没有在任何地方指定第二个手势会失败,因此第一个手势会失败而第二个手势会正常进行。这不是您想要的。
相反,您可以使用 shouldBeRequiredToFailByGestureRecognizer:
UIGestureRecognizerDelegate
方法告诉滑动手势在捏的情况下失败,例如:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldBeRequiredToFailByGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
if ([gestureRecognizer isKindOfClass:[UISwipeGestureRecognizer class]] &&
[otherGestureRecognizer isKindOfClass:[UIPinchGestureRecognizer class]]) {
return YES;
}
return NO;
}
关于iOS 捏合手势与滑动手势冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27894692/