我有两个 UIGestureRecognizers
用于同时识别两者的 View 。我希望完成或取消主要手势也能杀死另一个手势。那么,有没有办法杀死一个事件的手势,即强制取消一个事件的手势识别器?
最佳答案
由于您只想在主要手势结束或取消时终止次要手势,因此请在主要手势的手势处理程序中执行此操作。
- (void)handleGesture:(UIGestureRecognizer*)gesture {
...
if ( gesture.state == UIGestureRecognizerStateEnded || gesture.state == UIGestureRecognizerCancelled ) {
secondaryGesture.enabled = NO;
secondaryGesture.enabled = YES;
}
}
这似乎是您可以取消手势的唯一方法。
您可以使用
requireGestureRecognizerToFail:
声明一个依赖项。
[secondaryGesture requireGestureRecognizerToFail:primaryGesture];
这将在成功识别主要手势后终止次要手势。如果取消主要手势,则不提供此类工具。你可以翻转 enabled
辅助手势的标志 NO
和 YES
在 UIGestureRecognizerStateCancelled
上的主要手势的手势处理程序中但这似乎并不优雅。
关于ios - 两个 UIGestureRecognizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6150168/