iPhone-UIGestureRecognizer的3次多次检测 [英] iPhone - 3 multiple detections of UIGestureRecognizer
问题描述
我在视图上附加了3个UIGestureRecognizer:一个手指双击,两个手指双击和一个手指三次单击.问题是这样的:当我连按三下时,它会先触发应通过双击触发的方法,然后触发三连击的方法.
I have 3 UIGestureRecognizers attached to a view: one finger double tap, two fingers double tap and one finger triple tap. The problem is this: when I triple tap, it fires the method that should be fired by double tap then the method for triple tap.
这就是我添加它的方式.
This is how I added it.
// 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];
是的,我尝试添加这些,但是没有成功
and yes, I have tried to add these, without success
[doubleTap requireGestureRecognizerToFail:doubleTapTwoFingers];
[doubleTap requireGestureRecognizerToFail:tripleTapOneFinger];
[doubleTapTwoFingers requireGestureRecognizerToFail:doubleTap];
[doubleTapTwoFingers requireGestureRecognizerToFail:tripleTapOneFinger];
[tripleTapOneFinger requireGestureRecognizerToFail:doubleTap];
[tripleTapOneFinger requireGestureRecognizerToFail:doubleTapTwoFingers];
我想念什么?
在handle方法内是否可以检测出抽头的数量?
is there a way to, inside the handle method, detect the number of taps?
谢谢
推荐答案
通过 requireGestureRecognizerToFail:
添加过多的手势识别器依赖性将导致问题.在您的情况下,只需添加所需的一个依赖项即可:
Adding too many gesture recognizer dependancies through requireGestureRecognizerToFail:
will cause problems. Just add the one dependency that is needed, in your case:
[doubleTap requireGestureRecognizerToFail:tripleTapOneFinger];
这篇关于iPhone-UIGestureRecognizer的3次多次检测的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!