ACB zitiert die UIGestureRecognizer
Referenz. Um es ein wenig konkreter zu machen, dass Sie eine Ansicht mit einer Pfanne Gestenerkenner angeschlossen haben, und Sie haben diese Methoden in Ihrem View-Controller:
- (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");
}
Und natürlich die pan Gestenerkenner konfiguriert ist, die panGestureRecognizerDidUpdate:
senden Botschaft.
Angenommen, Sie berühren die Ansicht, bewegen Sie Ihren Finger so weit, dass die Schwenkbewegung erkannt wird, und heben Sie dann Ihren Finger. Was druckt die App?
Wenn die Gestenerkenner cancelsTouchesInView
Satz YES
hat, die App wird diese Nachrichten protokollieren:
touchesBegan
touchesMoved
touchesCancelled
panGesture
panGesture
(etc.)
Sie könnten bekommen mehr als eine touchesMoved
vor dem Abbrechen.
Wenn Sie also cancelsTouchesInView
auf YES
(Standardeinstellung) setzen, bricht das System die Berührung ab, bevor die erste Nachricht vom Gestenerkenner gesendet wird, und Sie erhalten keine weiteren berührbezogenen Nachrichten für diese Berührung.
Wenn die Gestenerkenner cancelsTouchesInView
Satz NO
, die App diese Meldungen protokolliert hat:
touchesBegan
touchesMoved
panGesture
touchesMoved
panGesture
touchesMoved
panGesture
(etc.)
panGesture
touchesEnded
Also, wenn Sie setzen cancelsTouchesInView
-NO
, das System für die berührungsbezogene Nachrichten senden, wird fortgesetzt Gestenberührung, verschachtelt mit den Nachrichten der Gestenerkenner. Die Berührung wird normal beendet, anstatt abgebrochen zu werden (es sei denn, das System bricht die Berührung aus einem anderen Grund ab, z. B. wenn die Home-Taste während der Berührung gedrückt wird).
Danke! Wenn Sie cancelsTouchesInView auf Nein setzen, wird das Ereignis abgebrochen, richtig? – jebberwocky
Ich verstehe nicht, was "Abbrechen Popping" bedeutet. –