iPhone – 3次UIGestureRecognizer的多次检测

我有3个UIGestureRecognizers附加到视图:一个手指双击,两个手指双击和一个手指三击。 问题是这样的:当我点击三次时,它会触发应该通过双击然后三次点击的方法触发的方法。

这是我添加它的方式。

// one finger double tap doubleTap = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)] autorelease]; [doubleTap setCancelsTouchesInView:YES]; [doubleTap setNumberOfTapsRequired:2]; [doubleTapDoisDedos setNumberOfTouchesRequired:1]; [doubleTap setDelegate:self]; [[[CCDirector sharedDirector] openGLView] addGestureRecognizer:doubleTap]; // two fingers double tap twoFingerDoubleTap = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTapTwoFingers:)] autorelease]; [twoFingerDoubleTap setCancelsTouchesInView:YES]; [twoFingerDoubleTap setNumberOfTapsRequired:2]; [twoFingerDoubleTap setNumberOfTouchesRequired:2]; [twoFingerDoubleTap setDelegate:self]; [[[CCDirector sharedDirector] openGLView] addGestureRecognizer:twoFingerDoubleTap]; // triple tap com um dedo faz as cartas se empilharem tripleTapOneFinger = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTripleTap:)] autorelease]; [tripleTapOneFinger setCancelsTouchesInView:YES]; [tripleTapOneFinger setNumberOfTapsRequired:3]; [tripleTapOneFinger setNumberOfTouchesRequired:1]; [tripleTapOneFinger setDelegate:self]; [[[CCDirector sharedDirector] openGLView] addGestureRecognizer:tripleTapOneFinger]; 

是的,我试图添加这些,但没有成功

 [doubleTap requireGestureRecognizerToFail:doubleTapTwoFingers]; [doubleTap requireGestureRecognizerToFail:tripleTapOneFinger]; [doubleTapTwoFingers requireGestureRecognizerToFail:doubleTap]; [doubleTapTwoFingers requireGestureRecognizerToFail:tripleTapOneFinger]; [tripleTapOneFinger requireGestureRecognizerToFail:doubleTap]; [tripleTapOneFinger requireGestureRecognizerToFail:doubleTapTwoFingers]; 

我错过了什么?

有没有办法在handle方法中检测水龙头的数量?

谢谢

通过requireGestureRecognizerToFail:添加太多手势识别器依赖requireGestureRecognizerToFail:将导致问题。 在您的情况下,只需添加所需的一个依赖项:

 [doubleTap requireGestureRecognizerToFail:tripleTapOneFinger];