Video: Grundlagen von Funktionen, Masterplan - August 2019 2025
Ereignisse der Benutzeroberfläche (UI) in iOS sind das Ergebnis von (Finger-) Berührungen in einer Ansicht. (oder der Benutzer schüttelt das Gerät). Ein UITouch-Objekt, das jede Berührung repräsentiert, wird in dem Ereignis verpackt, das an den Responder gesendet wird. Dieses Objekt enthält Informationen wie die berührte Ansicht, den Ort der Berührung, einen Zeitstempel und eine Phase.
Die Phase ist notwendig, weil ein Touch-Objekt während einer Berührung eine Folge von Phasen durchläuft - in der folgenden Reihenfolge:
-
UITouchPhaseBegan: Finger hat eine Ansicht berührt.
-
UITouchPhaseMoved: Der Finger wurde in dieser Ansicht verschoben oder in eine benachbarte Ansicht verschoben.
-
UITouchPhaseEnded: Finger aus einer Ansicht gehoben.
Über die Hauptereignisschleife empfängt das Anwendungsobjekt Berührungsereignisse in seiner Ereigniswarteschlange. Es verpackt sie dann als UITouch-Objekte in UIEvent-Objekte und versendet sie an den entsprechenden Responder. Damit der Responder Ereignisse verarbeiten kann, muss er vier Methoden (in der UIResponder-Basisklasse deklariert) wie folgt überschreiben:
-
touchesBegan wird in der Begann-Phase für Berührungen aufgerufen.
-
touchesMoved wird für Touch-Objekte in der bewegten Phase aufgerufen. Das heißt, nach der Berührung drückt der Finger des Benutzers weiter, während er auf dem Bildschirm zieht.
-
touchesEnded wird für Touch-Objekte in der Ended-Phase aufgerufen. Das heißt, der Benutzer hebt nach der Berührung seinen Finger.
-
touchesCancelled wird aufgerufen, wenn (angenommen) ein eingehender Telefonanruf Berührungsereignisse löscht, die vor dem Telefonanruf stattgefunden haben.
Die folgende Abbildung zeigt, wie Berührungen und Ereignisse in iOS behandelt werden.
Bestimmte spezialisierte Benutzeroberflächenelemente (wie Textfelder) verwenden einen anderen Mechanismus für Benutzeroberflächeninteraktionen. Anstatt Ereignisse an ihre Responder zu melden, die dann entscheiden müssen, wie sie auf diese Ereignisse reagieren sollen, senden die UI-Elemente Aktionen (oder Aktionsnachrichten) an ihre Responder, auf die diese Responder reagieren.
Die in einer Aktionsnachricht gespeicherten Informationen bestehen aus zwei Elementen: einem Selektor, der die aufzurufende Methode identifiziert, und einem Ziel, das das Objekt ist, das die Nachricht empfängt. Eine Methode, die eine Aktionsnachricht behandelt, muss wie folgt aussehen:
- (IBAction) doSomething: (id) sender;
All dies klingt kompliziert, aber beachten Sie, dass Delegation das allgemeine Thema bei der Behandlung von Ereignissen ist. Im Wesentlichen werden Ereignisse und Aktionen in Ansichten erkannt und dann die Behandlung des Ereignisses oder der Aktion an einen Responder delegiert. Denken Sie daran, dass die Delegierung in verschiedenen UI-Elementen unterschiedlich spezifiziert werden muss, und es ist ein Kinderspiel, herauszufinden, wie eine iOS-Benutzeroberfläche entwickelt wird.
