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];