检测离散的触摸事件

时间:2010-07-15 21:15:40

标签: objective-c iphone cocoa-touch ios4

如何隔离彼此的触摸事件?例如,如果视图检测到单击,我应该调用一种方法,如果视图检测到双击,则应该调用另一种方法。我这样做的问题在于,双击总是被解释为单击,然后才能作为双击进行交互。所以,例如:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

 UITouch *touch = [touches anyObject];
 if ([touch tapCount] == 1) {
NSLog(@"one touch");
 } else if ([touch tapCount] > 1) {
 NSLog(@"multi taps");
 }
}

如果我要单独粘贴屏幕,我会正确记录“一触”。但是,如果我将屏幕加倍,我会得到记录的语句,首先是“一键式”,然后是“多次点击”。

我确信这很简单,但有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

找到答案:http://www.iphonedevsdk.com/forum/iphone-sdk-development/3578-tap-double-tap.html

您使用开关然后取消待处理的请求,即:

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(singleTapMethod) object:nil];