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

是的,这是预期的行为。该控件将受到启动前指定的触摸量的限制。