ACB zacytował numer referencyjny UIGestureRecognizer
. Aby zrobić to trochę bardziej konkretne, załóżmy, że masz widok z patelni rozpoznawania gestów załączony i masz te metody w kontrolerze widoku:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"touchesBegan");
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"touchesMoved");
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"touchesEnded");
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"touchesCancelled");
}
- (IBAction)panGestureRecognizerDidUpdate:(UIPanGestureRecognizer *)sender {
NSLog(@"panGesture");
}
I oczywiście pan gest rozpoznawania jest skonfigurowany do wysyłania panGestureRecognizerDidUpdate:
wiadomość.
Załóżmy, że dotykasz widoku, przesuń palec na tyle, aby gest panoramy został rozpoznany, a następnie podnieś palec. Co drukuje aplikacja?
Jeśli rozpoznawania gest ma cancelsTouchesInView
zestaw do YES
, aplikacja będzie rejestrować te wiadomości:
touchesBegan
touchesMoved
touchesCancelled
panGesture
panGesture
(etc.)
Można dostać więcej niż jedną touchesMoved
przed anuluj.
Jeśli więc ustawisz cancelsTouchesInView
na YES
(ustawienie domyślne), system anuluje dotyk przed wysłaniem pierwszej wiadomości z urządzenia do rozpoznawania gestów, a nie dostaniesz więcej komunikatów dotykowych związanych z tym dotknięciem.
Jeśli rozpoznawania gest ma cancelsTouchesInView
zestaw do NO
, aplikacja będzie rejestrować te wiadomości: Czyli
touchesBegan
touchesMoved
panGesture
touchesMoved
panGesture
touchesMoved
panGesture
(etc.)
panGesture
touchesEnded
, jeśli ustawisz cancelsTouchesInView
do NO
, system będzie kontynuować wysyłanie wiadomości związane dotykowe dla gesty dotykowe, przeplatane wiadomościami od rozpoznania gestu. Dotknięcie zakończy się normalnie, a nie zostanie anulowane (chyba że system anuluje dotyk z jakiegoś innego powodu, np. Naciśnięcie przycisku głównego podczas dotykania).
Dzięki! Po ustawieniu cancelTouchesInView na Nie, wydarzenie zostanie anulowane, gdy kliknięcie zostanie wykonane prawidłowo? – jebberwocky
Nie rozumiem, co oznacza "anuluj pojawianie się". –