首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个UIGestureRecognizers

两个UIGestureRecognizers
EN

Stack Overflow用户
提问于 2011-05-27 17:15:27
回答 2查看 2.1K关注 0票数 1

对于同时识别两者的视图,我有两个UIGestureRecognizers。我希望主要手势的结束或取消也会杀死其他手势。那么,有没有一种方法可以杀死活动的手势,即强制取消活动的手势识别器?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-28 11:49:35

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

代码语言:javascript
复制
- (void)handleGesture:(UIGestureRecognizer*)gesture {
    ...
    if ( gesture.state == UIGestureRecognizerStateEnded || gesture.state == UIGestureRecognizerCancelled ) {
        secondaryGesture.enabled = NO;
        secondaryGesture.enabled = YES;
    }
}

这似乎是你取消手势的唯一方法。

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

代码语言:javascript
复制
[secondaryGesture requireGestureRecognizerToFail:primaryGesture];

这将在成功识别主要手势时终止次要手势。如果主手势被取消,则不提供这样的工具。您可能可以在UIGestureRecognizerStateCancelled上的主要手势的手势处理程序中将次要手势的enabled标志翻转为NOYES,但这看起来并不优雅。

票数 2
EN

Stack Overflow用户

发布于 2011-10-20 07:04:04

根据手势的不同,你可能想要两者兼得。我遇到了一个手势相互干扰的问题,有一段时间我有类似的解决方案。我尝试使用的两个手势是收缩和旋转手势。理想情况下,我希望用户能够在两者之间顺利过渡,而不必取消其中一个,而我设法实现了这一点。我已经写了how I did it here and provided a how to video,我希望这能对某些人有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6150168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档