Sie nicht den Kontakt treten können, weil manchmal mehr Berührungen ausgelöst die Nachricht. Wenn der Benutzer zwei Finger auf dem Bildschirm hat und beide bewegt, können Sie eine einzelne touchesMoved:withEvent:
bekommen, in der beide Berührungen aktualisiert werden.
Sie müssen jede Berührung im touches
Set verarbeiten. Wenn Sie Multitouch für die Ansicht deaktiviert haben, so dass Sie wissen, dass nur eine Berührung im Satz vorhanden ist, können Sie touches.anyObject
verwenden, um die Berührung zu erhalten. Wenn Sie Multitouch jedoch nicht deaktiviert haben, müssen Sie alle Berührungen im Set durchlaufen.
Die Nachricht enthält eine Reihe von Berührungen, die von event.allTouches
getrennt sind, da der Benutzer möglicherweise drei Finger nach unten hat, aber nur einen oder zwei davon bewegt. Das touches
Set enthält nur die verschobenen Berührungen, aber event.allTouches
enthält alle Berührungen des Benutzers, einschließlich der Berührungen, die seit der letzten Nachricht nicht verschoben wurden.
Die eindeutige Kennung für die Berührung ist das Objekt UITouch
. Wenn der Benutzer einen Finger auf den Bildschirm legt, erstellt iOS ein Objekt UITouch
. Es aktualisiert dieses Objekt, wenn der Benutzer seinen Finger bewegt. Sie können also das Objekt UITouch
als Schlüssel in einem NSDictionary
verwenden, oder Sie können eigene Objekte mit objc_setAssociatedObject
daran anhängen.
Wow! Vielen Dank für Ihre ausführliche Antwort. Jetzt macht alles Sinn :) –