2010-09-28 48 views
12

En regardant à travers le documentation, il semble que la nouvelle API Gestes avancés ne détermine pas la direction d'un balayage au-delà de la base {gauche, droite, haut, bas}.iOS Gestes avancés: Obtenir le vecteur Direction par glissement

J'ai besoin du point de départ du balayage et de la direction.

Existe-t-il un moyen de récupérer ceci en plus de coder ma propre bibliothèque de gestes avancée à partir des gestes de base?

Et si c'est ma seule option, quelqu'un pourrait-il me diriger vers un code open source qui le fait?

Répondre

14

Got it! La documentation est here, sous 'Création de reconnaisseurs de mouvements personnalisés' en bas.

Fondamentalement, les six gestes fournis par Apple proviennent tous de UIGestureRecognizer, et vous pouvez faire votre propre reconnaissance de gestes de la même manière. Puis, à l'intérieur de l'init de votre vue, vous connectez votre système de reconnaissance. et juste le fait de l'accrocher automatiquement réachemine les événements tactiles entrants.

En fait, le comportement par défaut est de faire de votre reconnaisseur un observateur de ces événements. Ce qui signifie que votre vue les obtient comme par le passé, et si votre reconnaissance reconnaît un geste, elle déclenchera votre méthode myCustomEventHandler dans votre vue (vous avez passé son sélecteur lorsque vous avez connecté votre reconnaissance). Mais parfois, vous voulez empêcher les événements tactiles d'origine d'atteindre la vue, et vous pouvez bidouiller votre reconnaissance à cet effet. il est donc un peu trompeur de le considérer comme un «observateur».

Il existe un autre scénario dans lequel un geste doit en manger un autre. Comme vous ne pouvez pas renvoyer un seul clic si votre vue est également amorcée pour recevoir des doubles-clics. Vous devez attendre le double-clic de reconnaissance pour signaler un échec. et si c'est réussi, vous devez échouer le simple clic - évidemment, vous ne voulez pas renvoyer les deux!

+13

Lien a été déplacé ici: http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/GestureRecognizers/GestureRecognizers.html –

+0

Encore une fois le lien a été déplacé ici: https: // developer. apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/GestureRecognizer_basics/GestureRecognizer_basics.html – sleepwalkerfx