对于同时识别两者的视图,我有两个UIGestureRecognizers。我希望主要手势的结束或取消也会杀死其他手势。那么,有没有一种方法可以杀死活动的手势,即强制取消活动的手势识别器?
发布于 2011-05-28 11:49:35
由于您只想在主要手势结束或取消时终止次要手势,因此请在主要手势的手势处理程序中执行此操作。
- (void)handleGesture:(UIGestureRecognizer*)gesture {
...
if ( gesture.state == UIGestureRecognizerStateEnded || gesture.state == UIGestureRecognizerCancelled ) {
secondaryGesture.enabled = NO;
secondaryGesture.enabled = YES;
}
}这似乎是你取消手势的唯一方法。
您可以使用requireGestureRecognizerToFail:声明依赖项。
[secondaryGesture requireGestureRecognizerToFail:primaryGesture];这将在成功识别主要手势时终止次要手势。如果主手势被取消,则不提供这样的工具。您可能可以在UIGestureRecognizerStateCancelled上的主要手势的手势处理程序中将次要手势的enabled标志翻转为NO和YES,但这看起来并不优雅。
发布于 2011-10-20 07:04:04
根据手势的不同,你可能想要两者兼得。我遇到了一个手势相互干扰的问题,有一段时间我有类似的解决方案。我尝试使用的两个手势是收缩和旋转手势。理想情况下,我希望用户能够在两者之间顺利过渡,而不必取消其中一个,而我设法实现了这一点。我已经写了how I did it here and provided a how to video,我希望这能对某些人有所帮助。
https://stackoverflow.com/questions/6150168
复制相似问题