我正在使用以下代码将两个手势识别器添加到 View 中。我想要的是:如果用户点击一件事。如果他们点击两次,就会发生另一件事。
实际上,无论用户点击一次还是两次,都会发生单击操作。换句话说,当我双击时,我得到了两个 Action ,而不是我希望的一个 Action
区分
//gesture recognizer.
UITapGestureRecognizer *tapRecognizerShowHideMenu = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doOneThing)];
[tapRecognizerShowHideMenu setDelegate:self];
[tapRecognizerShowHideMenu setNumberOfTapsRequired:1];
[self.view addGestureRecognizer:tapRecognizerShowHideMenu];
UITapGestureRecognizer *tapRecognizerEditEffect = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doAnotherThing)];
[tapRecognizerEditEffect setDelegate:self];
[tapRecognizerEditEffect setNumberOfTapsRequired:2];
[self.view addGestureRecognizer:tapRecognizerEditEffect];
最佳答案
将此添加到您的代码中:
[tapRecognizerShowHideMenu requireGestureRecognizerToFail:tapRecognizerEditEffect];
当您为手势识别器设置 requireGestureRecognizerToFail: 时,您是说它应该只识别其他手势识别器不识别的手势。所以在这里,您告诉单击只有在双击不被识别时才被识别。
关于iphone - UIGesture 识别器,区分单击和双击。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13889108/