首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UITapGestureRecognizer停止touchesEnded

UITapGestureRecognizer停止touchesEnded
EN

Stack Overflow用户
提问于 2010-10-04 05:19:03
回答 3查看 3.1K关注 0票数 1

我正在尝试制作一个由触摸控制的iPhone应用程序。我也希望当用户双击时,启动电源。这是我到目前为止所知道的:

代码语言:javascript
复制
UITapGestureRecognizer *powerRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(usePower)];
powerRecognizer.delaysTouchesEnded = NO;
powerRecognizer.numberOfTapsRequired = 2;
powerRecognizer.numberOfTouchesRequired = 1;
[self.view addGestureRecognizer:powerRecognizer];
[powerRecognizer release];

但问题是,当我双击时,我的touchesEnded:withEvent:方法只触发一次,而我的touchesBegan:withEvent:方法触发两次。由于touchesBegan:设置了计时器,而touchesEnded:使其无效,因此当touchesEnded:仅触发一次时,计时器仍在运行。我该如何解决这个问题呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-04 22:52:17

以下是我检测双击的解决方案:

代码语言:javascript
复制
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{   

UITouch *touch = [touches anyObject];

if([touch tapCount] == 2) {
// do sth   
}

}
票数 2
EN

Stack Overflow用户

发布于 2010-10-04 05:37:02

向视图添加手势识别器会更改几种触摸处理方法的行为,包括touchesEnded:WithEvent:

从上面的链接:

观察后,触摸对象到附加视图的传递或它们的处置会受到cancelsTouchesInView、delaysTouchesBegan和delaysTouchesEnded属性的影响。

票数 2
EN

Stack Overflow用户

发布于 2017-02-20 08:27:48

在Swift中,您可以避免标准行为,并让UITouch事件传播到视图及其子级,即使识别了手势,也可以使用

代码语言:javascript
复制
recognizer.cancelsTouchesInView = false

touchesBegantouchesEnded都将被调用。

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

https://stackoverflow.com/questions/3851637

复制
相关文章

相似问题

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