2010-09-28 12 views
12

Patrząc przez documentation, wydaje się, że nowy zaawansowany interfejs API gestów nie określa kierunku przesunięcia poza podstawowe {lewo, prawo, górę, dół}.Zaawansowane gesty iOS: uzyskanie wektora przesunięcia

Potrzebuję punktu początkowego przesunięcia i kierunku.

Czy jest jeszcze możliwe, aby odzyskać to inaczej niż kodowanie mojej własnej zaawansowanej biblioteki gestów od podstaw podstawowych gestów?

A jeśli jest to moja jedyna opcja, czy ktoś może wskazać mi jakiś kod open source, który to robi?

Odpowiedz

14

Gotowy! Dokumentacja to here, pod "Tworzenie niestandardowych urządzeń do rozpoznawania gestów" u dołu.

Zasadniczo sześć gestów, które zapewnia Apple, pochodzi od UIGestureRecognizer, a Ty możesz stworzyć swój własny rozpoznawalny gest w ten sam sposób.

następnie, w środku twojego widoku, podłączasz rozpoznawcę. i sam akt podpięcia automatycznie przekierowuje nadchodzące zdarzenia dotykowe.

W rzeczywistości domyślnym zachowaniem jest sprawienie, aby Twój uznawca był obserwatorem tych wydarzeń. Co oznacza, że ​​Twój widok uzyskuje je tak, jak dawniej, a ponadto, jeśli twój rozpoznawca zauważy gest, uruchomi on twoją metodę myCustomEventHandler w twoim widoku (przekazałeś swój selektor po podłączeniu swojego rozpoznawacza).

Czasami jednak chcesz uniemożliwić oryginalnym zdarzeniom dotyku dotarcie do widoku i możesz w tym celu odszukać swojego rozpoznawcę. więc jest trochę mylące, aby myśleć o tym jako o "obserwatorze".

Jest jeszcze jeden inny scenariusz, w którym jeden gest musi zjeść inny. Nie możesz po prostu odesłać pojedynczego kliknięcia, jeśli Twój widok jest również przygotowany do otrzymania podwójnego kliknięcia. Musisz poczekać, aż funkcja rozpoznawania podwójnego kliknięcia zgłosi błąd. a jeśli się powiedzie, nie powiedzie się jedno kliknięcie - oczywiście nie chcesz odsyłać obydwu!

+13

Link przeniesiono tutaj: http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/GestureRecognizers/GestureRecognizers.html –

+0

Ponownie przeniesiono tutaj link: https: // programista. apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/GestureRecognizer_basics/GestureRecognizer_basics.html – sleepwalkerfx