我正在使用 UILongPressGestureRecognizer
,当我使用一根手指时,它可以正常工作。当我放下第二根手指时,识别器不会捕获到,delegate
会一直被调用,但只有第一次触摸时,[recognizer numberOfTouches]
始终为 1。
如果我设置 [recognizer setNumberOfTouchesRequired:2]
它也可以正常工作,当我同时放下 2 个手指时,我会得到 [recognizer numberOfTouches]
= 2。
我的结论是:在 UILongPressGesture
被识别并开始后,第二次触摸不会改变它。这是预期的行为吗?
最佳答案
您可以添加两个不同的 UILongPressGestureRecognizers,一个设置为 numberOfTouchesRequired
= 1,一个设置为 2。
您可能还希望一个只预期 1 个手指在识别另一个手指时失败(以防用户用一根手指轻敲,并在放下另一根手指后立即)。
它会是这样的:
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];
关于iphone - UILongPressGestureRecognizer 开始后的第二次触摸,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3584993/