Vidéo: ColorOS — необыкновенная прошивка для смартфонов OPPO и realme 2025
La plupart des événements envoyés à une application iOS sont encapsulés dans un objet événement - une instance de la classe UIEvent. Dans le cas d'événements liés au toucher, l'objet événement contient un ou plusieurs objets tactiles (UITouch) représentant les doigts qui touchent l'écran.
Lorsque l'utilisateur place les doigts sur l'écran, les déplace et les supprime de l'écran, le système signale les modifications pour chaque doigt dans l'objet tactile correspondant.
La distribution et la gestion des événements sont la tâche des objets répondeurs, qui sont des instances de la classe UIResponder. Les classes UIApplication, UIViewController, UIWindow et UIView (et votre propre RTAppDelegate) héritent toutes de UIResponder.
Après avoir extrait un événement de la file d'attente des événements, l'application distribue cet événement à l'objet UIWindow où il s'est produit. L'objet window, à son tour, transmet l'événement à son premier répondeur, désigné pour être le premier destinataire d'événements autres que des événements tactiles.
Dans le cas d'événements tactiles, le premier répondeur est généralement l'objet de vue (UIView) dans lequel le contact a eu lieu. Par exemple, un événement tactile se produisant dans un bouton est envoyé à l'objet bouton correspondant.
Si le premier répondeur est incapable de gérer un événement, il transfère l'événement à son répondeur suivant, qui est généralement une vue parent ou un contrôleur de vue. Si cet objet est incapable de gérer l'événement, il le transmet à son répondeur suivant, et ainsi de suite jusqu'à ce que l'événement soit géré.
Cette série d'objets répondeurs liés est appelée chaîne de réponse . Les messages continuent de remonter la chaîne du répondeur - vers les objets répondeurs de niveau supérieur, tels que la fenêtre, l'application et le délégué de l'application - jusqu'à ce que l'événement soit traité ou ignoré.
L'objet répondeur qui gère un événement met souvent en mouvement une série d'actions programmatiques par l'application. La liste suivante fournit la chronologie de ce qui se passe réellement lorsque l'utilisateur appuie sur quelque chose:
-
Vous avez un événement - l'utilisateur appuie sur un bouton, par exemple.
Le toucher d'un doigt (ou la levée d'un doigt de l'écran) ajoute un événement tactile à la file d'attente des événements de l'application, où cet événement est encapsulé - en d'autres termes - Objet UIEvent Un objet UITouch existe pour chaque doigt touchant l'écran, de sorte que vous pouvez suivre les touches individuelles. Lorsque l'utilisateur manipule l'écran avec ses doigts, le système signale les changements pour chaque doigt dans l'objet correspondant.
-
Le moniteur de boucle d'exécution distribue l'événement.
Lorsqu'un événement doit être traité, le code de gestion des événements de l'UIApplication traite les événements tactiles en les envoyant à l'objet responder approprié - l'objet qui s'est inscrit pour prendre la responsabilité de faire quelque chose lorsqu'un événement se produit (lorsque l'utilisateur touche l'écran, par exemple).
Les objets répondeur peuvent inclure des instances de UIApplication, UIWindow et UIView (et l'une de ses sous-classes), ainsi que UIViewController (et l'une des sous-classes ses ). Toutes ces classes héritent de UIResponder.
-
Un objet répondeur décide comment gérer l'événement.
Par exemple, un événement tactile se produisant avec un bouton dans une vue est livré à l'objet bouton. L'objet bouton gère l'événement en envoyant un message d'action à un autre objet - dans ce cas, l'objet UIViewController.
Cela vous permet d'utiliser des objets de boutons standard sans avoir à se balader dans leurs internes - vous dites simplement au bouton quelle méthode vous voulez appeler dans votre cible (généralement le contrôleur de vue), et vous êtes essentiellement configuré.
Le traitement du message peut entraîner des changements dans une vue, une nouvelle vue ou tout autre type de changement dans l'interface utilisateur. Lorsque l'un de ces résultats se produit, l'infrastructure de vue et de graphisme prend le relais et traite les événements de dessin requis.
-
Votre application retourne ensuite à la boucle d'exécution.
Après le traitement ou la suppression d'un événement, le contrôle de l'application revient à la boucle d'exécution. La boucle d'exécution traite ensuite l'événement suivant ou met le thread en veille s'il n'a plus rien à faire.
Mais comme votre application n'est pas seule sur l'appareil, elle peut être interrompue par un message SMS ou par l'utilisateur qui touche le bouton Accueil. Lorsque votre application est interrompue, vous devez prendre soin de certaines choses avant que le contrôle ne passe à une autre application.
