ios - 两个 UIGestureRecognizer

标签 ios uigesturerecognizer

我有两个 UIGestureRecognizers 用于同时识别两者的 View 。我希望完成或取消主要手势也能杀死另一个手势。那么,有没有办法杀死一个事件的手势,即强制取消一个事件的手势识别器?

最佳答案

由于您只想在主要手势结束或取消时终止次要手势,因此请在主要手势的手势处理程序中执行此操作。

- (void)handleGesture:(UIGestureRecognizer*)gesture {
    ...
    if ( gesture.state == UIGestureRecognizerStateEnded || gesture.state == UIGestureRecognizerCancelled ) {
        secondaryGesture.enabled = NO;
        secondaryGesture.enabled = YES;
    }
}

这似乎是您可以取消手势的唯一方法。


您可以使用 requireGestureRecognizerToFail:声明一个依赖项。

[secondaryGesture requireGestureRecognizerToFail:primaryGesture];

这将在成功识别主要手势后终止次要手势。如果取消主要手势,则不提供此类工具。你可以翻转 enabled辅助手势的标志 NOYESUIGestureRecognizerStateCancelled 上的主要手势的手势处理程序中但这似乎并不优雅。

关于ios - 两个 UIGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6150168/

相关文章:

ios - 如何在 Xcode 中从 UIActivityViewController 共享用户位置

ios - 在 UINavigationController 中隐藏导航栏时不向后滑动

ios - 如何禁用 UIPageViewController 的滑动手势?

uinavigationcontroller - 在 iOS7 中从 UINavigationController 滑动弹出时查看 Controller 生命周期

ios - 如何在 SWIFT 中设置捏合手势识别器的最小值和最大值?

iphone - 停止模态 UIViewController 旋转

ios - 应用程序拒绝与您的应用程序关联的卖家和公司名称

ios - 如何在 iOS 上压缩 Realm DB?

ios - 手势识别器在一段时间后没有响应

iphone - 如何在 objective-c 中调用此方法