Ich frage mich, was wirklich passiert, wenn ich setCancelsTouchesInView aufruft. Es ist nicht im offiziellen Dokument enthalten Ссылка
Danke
ACB hat die UIGestureRecognizer
Referenz angegeben. Um es ein wenig konkreter zu machen, nehmen wir an, Sie haben eine Ansicht mit einem Pan-Gestenerkennungsprogramm, und Sie haben diese Methoden in Ihrem View-Controller:
Und natürlich ist der Pan-Gesten-Erkenner so konfiguriert, dass er die Nachricht panGestureRecognizerDidUpdate:
sendet.
Nehmen wir nun an, Sie berühren die Ansicht, bewegen Ihren Finger so weit, dass die Schwenkbewegung erkannt wird, und heben Sie dann Ihren Finger. Was druckt die App?
Wenn für den Gestenerkenner cancelsTouchesInView
auf YES
gesetzt ist, protokolliert die App diese Nachrichten:
Sie können mehr als ein touchesMoved
vor dem Abbrechen erhalten.
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ührungsbezogenen Nachrichten mehr diese Berührung.
Wenn für den Gestenerkenner cancelsTouchesInView
auf NO
gesetzt ist, protokolliert die App diese Nachrichten:
Wenn Sie also cancelsTouchesInView
auf NO
setzen, sendet das System weiterhin berührungsbezogene Nachrichten für die Gestenberührung, die mit den Nachrichten der Gestenerkennung verschachtelt sind. 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).
Aus dem Apple-Entwicklerportal link :
cancelsTouchesInView - Wenn ein Gestenerkenner seine Geste erkennt, Es entblößt die verbleibenden Berührungen dieser Geste aus ihrer Sicht (so das Fenster liefert sie nicht). Das Fenster bricht das vorher ab Berührungen mit einer (touchesCancelled: withEvent :) Nachricht. Wenn ein Gestenerkenner erkennt seine Geste nicht, die Ansicht empfängt alle berührt in der Multi-Touch-Sequenz.
cancelsTouchesInView:
Ein boolescher Wert, der beeinflusst, ob Berührungen sind an eine Ansicht geliefert, wenn eine Geste erkannt wird.
@property (nicht atomisch) BOOL cancelsTouchesInView
Diskussion
Wenn das ist Eigenschaft ist YES (der Standardwert) und der Empfänger erkennt seine Geste, Die Berührungen dieser Geste, die noch ausstehen, werden nicht an die Ansicht und vorher abgegebene Berührungen werden durch a abgebrochen touchesCancelled: withEvent: Nachricht an die Ansicht gesendet. Wenn eine Geste Erkenner erkennt seine Geste nicht oder wenn der Wert von diesem Eigentum ist NEIN, die Aussicht erhält alle Berührungen im Multi-Touch Sequenz.
Tags und Links objective-c iphone ios uigesturerecognizer