Puis-je savoir exactement ce que requireGestureRecognizerToFail va faire?

Quelqu'un peut-il me dire exactement ce que la ligne de code ci-dessous va faire? J'ai référé la documentation de Pommes mais je n'ai pas eu l'image exacte à ce sujet,

[scrollview.panGestureRecognizer requireGestureRecognizerToFail:swipeRightGesture]; 

Lorsque l'user fait un geste de balayage à droite, le geste de panoramique échouera (ignoré).

Un exemple, [_singleTap requireGestureRecognizerToFail:_doubleTap] , lorsque vous voulez un geste à un seul [_singleTap requireGestureRecognizerToFail:_doubleTap] , un geste de double [_singleTap requireGestureRecognizerToFail:_doubleTap] échouer. Double-tap inclut deux taps uniques, donc si aucune méthode de délégué requireGestureRecognizerToFail single-tap requireGestureRecognizerToFail peut invoquer deux fois.

Donc, ici, le geste de balayage peut triggersr un geste de pan, puis invoquera la méthode de délégué panGestureRecognizer pendant que vous balayez réellement.

Si ajoutez [panGestureRecognizer requireGestureRecognizerToFail:swipeRightGesture] , une fois que swipeRightGesture est passé à UIGestureRecognizerStateRecognized ou UIGestureRecognizerStateBegan, panGestureRecognizer passe immédiatement à UIGestureRecognizerStateFailed.

Et seulement swipeRightGesture n'a pas transité au-dessus de RecognizerStates, il est possible pour panGestureRecognizer de répondre, de passer à UIGestureRecognizerStateBegan et d'invoquer la méthode de délégué panGestureRecognizer.

La réponse acceptée est seulement partiellement correcte …

Selon les docs pour requireGestureRecognizerToFail:

L'état de transition du récepteur dépend de ce qui se passe avec otherGestureRecognizer [le deuxième outil de reconnaissance de gestes référencé]:

  • Si otherGestureRecognizer passe à UIGestureRecognizerStateFailed, le récepteur passe à l'état suivant normal.

  • Si otherGestureRecognizer passe à UIGestureRecognizerStateRecognized ou UIGestureRecognizerStateBegan, le récepteur passe à UIGestureRecognizerStateFailed.

Cela signifie que dans le code suivant:

 [scrollview.panGestureRecognizer requireGestureRecognizerToFail:swipeRightGesture]; 

Lorsque l'user effectue un geste de balayage, le geste de panoramique échoue uniquement si ce geste de balayage se déroule normalement. Si ce geste de balayage échoue cependant, le geste de panoramique se poursuit à la place.