iOS 捏合手势与滑动手势冲突

标签 ios objective-c ios7 uigesturerecognizer

我创建了两个滑动识别器: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/

相关文章:

ios - 制作一个内部有3个屏幕的屏幕并使用分段控件

ios - CGPDFDocumentCreateWithURL 在 iOS 7 中返回 nil

ios - 如何为具有不透明主体的 UITableView header 设置清晰的背景

钥匙串(keychain)中的 ios IDFV 商店

ios - 有没有办法不花钱就可以为 iOS 开发?

ios - 如何从 View Controller 中选择 Storyboard中的 UIImage

ios - UIBarButton点击区域比customView大

objective-c - NSTextView 在没有停靠图标的应用程序中没有响应

iphone - 播放png动画时出现延迟

ios - 我是否需要始终创建嵌套结构以从json响应中的嵌套模型中仅获取一个属性?