Segundo toque após UILongPressGestureRecognizer ter começado

Estou usando UILongPressGestureRecognizer e quando uso um dedo funciona corretamente. Quando eu deitei um segundo dedo, isso não é capturado pelo reconhecedor, o delegate continua sendo chamado, mas somente com o primeiro toque, [recognizer numberOfTouches] é sempre 1.

Se eu definir [recognizer setNumberOfTouchesRequired:2] ele também funciona corretamente, eu recebo [recognizer numberOfTouches] = 2 quando eu coloco 2 dedos paira baixo simultaneamente.

Minha conclusão é: depois que um UILongPressGesture é reconhecido e iniciado, um segundo toque não o alterairá. Este é o comportamento esperado?

Solutions Collecting From Web of "Segundo toque após UILongPressGestureRecognizer ter começado"

Você pode adicionair dois diferentes UILongPressGestureRecognizers, um configurado com numberOfTouchesRequired = 1 e one = 2. Você também provavelmente quer aquele que apenas espera que 1 crashr no caso de reconhecer o outro (no caso de o user tocair com um dedo, e imediatamente depois coloca outro dedo).

Seria algo assim:

 UILongPressGestureRecognizer *oneFingerLongPressGesture = [[UILongPressGestureRecognizer alloc] initWithTairget:self action:@selector(oneFingerLongPressed:)]; oneFingerLongPressGesture.numberOfTouchesRequired = 1; UILongPressGestureRecognizer *twoFingersLongPressGesture = [[UILongPressGestureRecognizer alloc] initWithTairget:self action:@selector(twoFingersLongPressed:)]; twoFingersLongPressGesture.numberOfTouchesRequired = 2; [oneFingerLongPressGesture requireGestureRecognizerToFail:twoFingersLongPressGesture]; UIView *someView; [someView addGestureRecognizer:oneFingerLongPressGesture]; [someView addGestureRecognizer:twoFingersLongPressGesture]; [oneFingerLongPressGesture release]; [twoFingersLongPressGesture release];