如何在Double Tap之前停止单击

时间:2014-08-09 09:52:05

标签: gestures

我想在进行更复杂的交互之前设置一个简单的双击识别。我已经识别出单击和双击。但是,我的问题是双击不会在没有单击的情况下发射。

我已经看到了代码,其中介绍了一个失败的要求,但示例代码我不明白如何修改以使我的标准方法工作。

这是我的代码 - 目前我只是想让日志启动,它就是。但是在双击时我得到了我不想要的单击消息。我尝试更改TapGestureRecognizer事件设置无效。

- (IBAction)didTapPhoto1:(UITapGestureRecognizer *)sender; {


NSLog(@"Did Tap Photo1 !");

}



- (IBAction)didDoubleTapPhoto1:(UITapGestureRecognizer *)sender; {


    NSLog(@"DoubleTap");
}

谢谢

1 个答案:

答案 0 :(得分:0)

使用UIGestureRecognizer requireGestureRecognizerToFail:方法。

[singleTapGestureRecognizer requireGestureRecognizerToFail:doubleTapGestureRecognizer]

这种方法有一个副作用,如果你只在屏幕上点击一次,它会比不调用方法的反应慢。

编辑:您似乎在Storyboard或xib中创建了手势识别器。你也可以用代码来做。

UITapGestureRecognizer *singleGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapPhoto1:)] ;
singleGR.numberOfTapsRequired = 1 ;
UITapGestureRecognizer *doubleGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didDoubleTapPhoto1:)] ;
doubleGR.numberOfTapsRequired = 2 ;
// you can change self.view to any view in the hierarchy.
[self.view addGestureRecognizer:singleGR] ;
[self.view addGestureRecognizer:doubleGR] ;

[singleGR requireGestureRecognizerToFail:doubleGR] ;