如何隔离彼此的触摸事件?例如,如果视图检测到单击,我应该调用一种方法,如果视图检测到双击,则应该调用另一种方法。我这样做的问题在于,双击总是被解释为单击,然后才能作为双击进行交互。所以,例如:
-(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");
}
}
如果我要单独粘贴屏幕,我会正确记录“一触”。但是,如果我将屏幕加倍,我会得到记录的语句,首先是“一键式”,然后是“多次点击”。
我确信这很简单,但有人能指出我正确的方向吗?
答案 0 :(得分:1)
找到答案:http://www.iphonedevsdk.com/forum/iphone-sdk-development/3578-tap-double-tap.html
您使用开关然后取消待处理的请求,即:
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(singleTapMethod) object:nil];