Est-il une priorité de condition entre le geste méthodes de Pan (le Geste et la Geste de Balayage)?
Je développe une application dans laquelle j'ai utilisé le moule Geste ainsi que le Geste de Balayage. Donc, à chaque fois que je fais le Geste de Balayage, mais la méthode de la Casserole Geste est toujours appelé et Geste de Balayage méthode n'est pas appelée.
Est-il une priorité entre toutes la méthode du geste?
OriginalL'auteur NIKHIL | 2011-02-02
Vous devez vous connecter pour publier un commentaire.
Vous pouvez appeler en parallèle à la mise en œuvre de la méthode suivante de la
UIGestureRecognizerDelegate
protocole:OriginalL'auteur Atanas Chanev
Il y a une propriété sur la
UIGestureRecognizer
classe appelée "cancelsTouchesInView" qui est par défautYES
. Ce sera la cause de toute l'attente de gestes d'être annulée. Le Pan geste est plus reconnu en premier, car il n'a pas besoin d'avoir un "contact" de l'événement, de sorte qu'il annule le geste de Balayage.Si vous souhaitez à la fois des gestes pour être reconnu, essayez d'ajouter:
[yourPanGestureInstance setCancelsTouchesInView:NO];
J'ai Aussi Essayer Le shouldRecognizeSimultaneouslyWithgesturerecognizer Méthode au Sein de la UIGestureRecognizer.H fichier
Avez-vous essayé d'utiliser requireGestureRecognizerToFail:?
OriginalL'auteur picciano
Donner la priorité à la faire glisser
Vous pouvez donner la priorité à un
UIGestureRecognizer
avec lerequire(toFail:)
méthode.Maintenant votre pan ne s'exécutera que si votre balayez échoue.
Utilisation pan pour tout
Si le balayez et pan geste modules de reconnaissance ne jouent pas bien avec cette configuration, vous pouvez mettre toutes vos logique dans le pan geste de reconnaissance pour plus de contrôle.
Voici une démo du code ci-dessus dans l'action.
OriginalL'auteur Derek Soike