iphone - 单击手势与双击手势冲突

Jac*_*ale 29 iphone tap uigesturerecognizer

我有一个观点.我希望为它定义各种轻击手势.

因此,如果用户单击视图,视图将执行A; 如果用户双击视图,它将执行B而不执行A.

我在视图中添加了两个UITapGestureRecognizer.单击具有numberOfTapsRequired = 1; 并且双击使用numberOfTapsRequired = 2;

我也设置了返回NO

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
     return NO;
}
Run Code Online (Sandbox Code Playgroud)

但是,我发现他们互相冲突.我的意思是,即使我双击视图,也会调用A和B.

我怎么解决这个问题?

谢谢

Mar*_*fer 65

您可以通过添加以下代码行来解决此问题.这将确保单击识别器仅在双击识别器失败时触发:

    [singleTapRecognizer requireGestureRecognizerToFail:doubleTapRecognizer];
Run Code Online (Sandbox Code Playgroud)

  • @Mrug:是的,但唯一可以100%确定它是单一而非双击的方法是等到我们确定用户没有再次敲击. (4认同)
  • 但这会延迟检测单击!! :( (3认同)