我想在进行更复杂的交互之前设置一个简单的双击识别。我已经识别出单击和双击。但是,我的问题是双击不会在没有单击的情况下发射。
我已经看到了代码,其中介绍了一个失败的要求,但示例代码我不明白如何修改以使我的标准方法工作。
这是我的代码 - 目前我只是想让日志启动,它就是。但是在双击时我得到了我不想要的单击消息。我尝试更改TapGestureRecognizer事件设置无效。
- (IBAction)didTapPhoto1:(UITapGestureRecognizer *)sender; {
NSLog(@"Did Tap Photo1 !");
}
- (IBAction)didDoubleTapPhoto1:(UITapGestureRecognizer *)sender; {
NSLog(@"DoubleTap");
}
谢谢
答案 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] ;