Iphone UILongPress手势识别器启动后的第二次触摸
我使用的是Iphone UILongPress手势识别器启动后的第二次触摸,iphone,ipad,ios,uigesturerecognizer,Iphone,Ipad,Ios,Uigesturerecognizer,我使用的是ui长按手势识别器,当我使用一根手指时,它可以正常工作。当我放下第二个手指时,识别器不会捕捉到这一点,代理会一直被调用,但仅在第一次触摸时,[recognizer numberoftoucks]始终为1 如果我将[recognizer setnumberoftouch required:2]设置为正常,那么当我同时放下两个手指时,我会得到[recognizer numberoftouch]=2 我的结论是:当一个ui长按手势被识别并开始后,第二次触摸不会改变它。这是预期的行为吗?您可以
ui长按手势识别器
,当我使用一根手指时,它可以正常工作。当我放下第二个手指时,识别器不会捕捉到这一点,代理
会一直被调用,但仅在第一次触摸时,[recognizer numberoftoucks]
始终为1
如果我将[recognizer setnumberoftouch required:2]
设置为正常,那么当我同时放下两个手指时,我会得到[recognizer numberoftouch]
=2
我的结论是:当一个
ui长按手势被识别并开始后,第二次触摸不会改变它。这是预期的行为吗?您可以添加两个不同的UILongPressegestureRecognitor,一个设置为所需的numberOfTouchesRequired
=1,另一个设置为2。
您可能还希望只有一根手指的一根手指在识别出另一根手指时失败(如果用户用一根手指轻敲,并在放下另一根手指后立即按下)
应该是这样的:
UILongPressGestureRecognizer *oneFingerLongPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerLongPressed:)];
oneFingerLongPressGesture.numberOfTouchesRequired = 1;
UILongPressGestureRecognizer *twoFingersLongPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(twoFingersLongPressed:)];
twoFingersLongPressGesture.numberOfTouchesRequired = 2;
[oneFingerLongPressGesture requireGestureRecognizerToFail:twoFingersLongPressGesture];
UIView *someView;
[someView addGestureRecognizer:oneFingerLongPressGesture];
[someView addGestureRecognizer:twoFingersLongPressGesture];
[oneFingerLongPressGesture release];
[twoFingersLongPressGesture release];
是的,这是预期的行为。该控件将受到启动前指定的触摸量的限制。