Accueil Médias sociaux Comment suivre les touches dans votre application iOS - les nuls

Comment suivre les touches dans votre application iOS - les nuls

Vidéo: 10 applications gratuites pour regarder des films, séries, chaines TV, Anime Japonais etc 2025

Vidéo: 10 applications gratuites pour regarder des films, séries, chaines TV, Anime Japonais etc 2025
Anonim

Ce serait bien de pouvoir glisser une voiture et de la placer n'importe où sur l'écran de votre application iOS. Ici, vous découvrirez comment coder pour faire glisser un objet, ainsi que la façon dont les touches fonctionnent sur un appareil iOS.

Le toucher d'un doigt (ou sa levée de l'écran) ajoute un événement tactile à la file d'attente des événements de l'application, encapsulée (contenue) dans un objet UIEvent. Un objet UITouch existe pour chaque doigt touchant l'écran, ce qui vous permet de suivre les touches individuelles.

La touche touchesBegan: withEvent: le message est envoyé lorsqu'un ou plusieurs doigts touchent une vue. Ce message est une méthode de la superclasse de TestDriveController, UIResponder, à partir de laquelle le contrôleur de vue est dérivé.

Pendant que l'utilisateur continue de toucher l'écran avec ses doigts, le système signale les modifications pour chaque doigt dans l'objet UITouch correspondant, envoyant ainsi le message touchesMoved: withEvent:. La touche touchEnded: withEvent: le message est envoyé lorsqu'un ou plusieurs doigts sont extraits de la vue associée. Le contact touchesCancelled: withEvent: d'autre part, un message est envoyé lorsqu'un événement système (tel qu'un avertissement de mémoire faible) annule un événement tactile.

Dans cette application, vous devez être concerné uniquement par les deux premières méthodes que vous venez de décrire.

Pour commencer le processus de réponse à un événement tactile, ajoutez une nouvelle variable d'instance (en gras) à TestDriveController. m fichier d'implémentation.

@interface TestDriveController () {AVAudioPlayer * backgroundAudioPlayer; SystemSoundID burnRubberSoundID; BOOL touchInCar; } -d

Ensuite, ajoutez la méthode touchesBegan: à TestDriveController. m pour commencer à suivre les contacts. (Vous êtes en train de surcharger cette méthode car UIViewController en a hérité de la classe de base UIResponder.)

- (void) touchesBegan: (NSSet *) touche avecEvent: (UIEvent *) event {UITouch * touch = [touche n'importe quel objet]; if (CGRectContainsPoint (auto.car.base, [touch locationInview: vue autonome])) touchInCar = YES; else {touchInCar = NO; [super touchesBegan: touche withEvent: event];}}

Comme mentionné précédemment, le message touchesBegan: withEvent: est envoyé lorsqu'un ou plusieurs doigts touchent une vue. Les touches elles-mêmes sont transmises à la méthode dans un objet NSSet - une collection non ordonnée d'éléments distincts.

Pour accéder à un objet dans NSSet, utilisez la méthode anyObject - elle renvoie l'un des objets de l'ensemble. Pour notre propos ici, vous assumez un seul objet - mais vous pourriez vouloir explorer ce problème par vous-même afin de comprendre comment gérer des possibilités supplémentaires.

Le code suivant montre comment configurer la méthode anyObject:

UITouch * touch = [touche anyObject];

Ensuite, demandez au code de déterminer si l'événement tactile de l'utilisateur se trouve dans la vue Car (UIImage):

if (CGRectContainsPoint (self.voiture. cadre, [touch locationInView: auto. view]))

CGRectContainsPoint est une fonction qui renvoie YES lorsqu'un rectangle (coordonnées de vue) contient un point. Vous spécifiez le cadre de la voiture comme rectangle:

self. voiture. frame

et vous spécifiez le point en envoyant le message locationInView: au toucher:

locationInview: self. view

locationInView: renvoie l'emplacement actuel du récepteur dans le système de coordonnées de la vue donnée. Dans ce cas, vous utilisez la vue principale, mais vous souhaiterez peut-être modifier l'affichage si vous tentez de déterminer l'emplacement dans une autre vue, par exemple. Peut-être que l'utilisateur touche une pédale d'essence itty-bitty.

S'il est déterminé que le contact se trouve dans la voiture, affectez YES à la variable d'instance touchInCar; Si ce n'est pas le cas, vous attribuez NON et transférez le message dans la chaîne du répondeur. Vous utilisez plus tard TouchInCar pour déterminer si l'utilisateur fait glisser la voiture ou passe son doigt sur l'écran.

L'implémentation par défaut de touchesBegan: ne fait rien. Cependant, les sous-classes dérivées directement de UIResponder, en particulier UIView, transmettent le message à la chaîne répondeur. Pour transférer le message au répondeur suivant, envoyez le message à super (l'implémentation de la superclasse).

Si vous surchargez touchesBegan: withEvent: sans appeler super (un modèle d'utilisation commun), vous devez également remplacer les autres méthodes de gestion des événements tactiles, si ce n'est que des implémentations stub (vides).

Les touches multiples sont désactivées par défaut. Pour permettre à votre application de recevoir plusieurs événements tactiles, vous devez définir la propriété multipleTouchEnabled de l'instance de vue correspondante sur YES.

Lorsque les utilisateurs déplacent joyeusement la voiture autour de l'écran (en leur disant peut-être zoom zoom ), votre application reçoit en permanence le message touchesMoved:. Ajoutez le code dans l'extrait 10-13 à TestDriveController. m pour remplacer cette méthode, ce qui vous permettra de déplacer la voiture à l'endroit où se trouve le doigt de l'utilisateur.

- (void) touchesMoved: (NSSet *) touche avecEvent: (UIEvent *) event {if (touchInCar) {UITouch * touch = [touche n'importe quel objet]; soi. voiture. center = [touche positionInView: auto. view];} else [super touchesMoved: touche withEvent: event];}

Si le premier contact était dans la vue Car (TouchInCar est YES), vous affectez la propriété du centre de la voiture à la coordonnée tactile. Lorsque vous affectez une nouvelle valeur à la propriété center, l'emplacement de la vue est immédiatement modifié. Sinon, vous ignorez le toucher et transférez le message vers le haut de la chaîne du répondeur.

Il est intéressant d'observer que lorsque vous positionnez la voiture à côté d'un bouton, elle passe sous ce bouton lorsque vous appuyez sur le bouton Test Drive. Cette fonctionnalité illustre la structure de la sous-vue.

Expérimentez en déplaçant la voiture et en utilisant le bouton Test Drive. S'il y a quelque chose qui ne va pas avec vos formules pour positionner la voiture pendant le Test Drive, vous le verrez quand la voiture partira d'un endroit différent.

Comment suivre les touches dans votre application iOS - les nuls

Le choix des éditeurs

Comment détecter les atteintes à la sécurité sur vos fichiers journaux Web hébergés - dummies

Comment détecter les atteintes à la sécurité sur vos fichiers journaux Web hébergés - dummies

Grande question est toujours sur la sécurité. Comment pouvez-vous repérer les failles de sécurité hébergées sur le Web pour protéger votre site et garantir qu'il ne sera pas piraté? La réponse courte est la suivante: Vous ne pouvez pas. Tout est piratable avec suffisamment de temps, des cerveaux sournois et des ressources. Cependant, il y a des choses que vous pouvez faire pour vous protéger un peu. ...

Comment utiliser MySQL Workbench pour votre site Web - dummies

Comment utiliser MySQL Workbench pour votre site Web - dummies

Bien que phpMyAdmin et d'autres outils d'hébergement Web Pour gérer les bases de données, il est possible que vous ayez besoin de quelque chose de plus puissant. MySQL Workbench est une bonne source dans cette instance. MySQL Workbench est un outil de conception et d'administration de base de données gratuit créé par Oracle qui réunit deux produits: MySQL Query Browser et MySQL ...

Le choix des éditeurs

Comment mettre du texte sur un cercle dans QuarkXPress - texte fictif

Comment mettre du texte sur un cercle dans QuarkXPress - texte fictif

Sur un cercle - c'est-à-dire texte suivant l'extérieur d'un cercle ou ovale - est un élément de conception commun dans les mises en page. C'est vraiment facile à faire dans QuarkXPress, mais ce n'est pas du tout évident comment. Procédez comme suit: Obtenez l'outil Ovale de la palette Outils et dessinez ...

ÉChanges peer-to-peer par rapport aux échanges Bitcoin réguliers - mannequins

ÉChanges peer-to-peer par rapport aux échanges Bitcoin réguliers - mannequins

Deux types d'échanges de bitcoins sont utilisés : peer-to-peer et régulier. D'une part, il y a les échanges de bitcoins réguliers, qui utilisent un carnet de commandes pour faire correspondre les ordres d'achat et de vente entre les personnes. Cependant, ni l'acheteur ni le vendeur n'ont la moindre idée de l'identité de l'autre partie, ce qui permet à tous les utilisateurs ...

L'interface d'application QuarkXPress - les nuls

L'interface d'application QuarkXPress - les nuls

Les palettes visibles à gauche, à droite et en bas de QuarkXPress sont flottantes - vous pouvez les faire glisser n'importe où qui vous convient. Contrairement aux palettes, les menus de la barre de menu sont collés: vous devez toujours passer la souris à la barre de menu pour y accéder. Cependant, ...

Le choix des éditeurs

Sept erreurs d'optimisation de moteur de recherche - nuls

Sept erreurs d'optimisation de moteur de recherche - nuls

Lorsque vous essayez d'obtenir votre site Web, c'est facile de faire des erreurs d'optimisation de moteur de recherche. Voici quelques-unes des erreurs de référencement les plus courantes. Vous ne connaissez pas vos mots-clés C'est également un problème majeur: la grande majorité des sites sont créés sans que les propriétaires ou les développeurs du site ne sachent vraiment ce que sont les mots-clés ...

Soumission de pages aux moteurs de recherche pour l'optimisation - dummies

Soumission de pages aux moteurs de recherche pour l'optimisation - dummies

Vous avez probablement vu "soumission "Services annoncés pour le référencement, peut-être sous la forme de spam dans votre boîte de réception, offrant de soumettre votre site Web à des centaines de moteurs de recherche, encore et encore. Dans la plupart des cas, ces services de soumission sont une perte totale de temps et d'argent. Voici comment obtenir votre site Web dans les moteurs de recherche. You ...

Six mythes À propos de Search Engine Optimization - mannequins

Six mythes À propos de Search Engine Optimization - mannequins

Il existe une grande confusion dans le monde des moteurs de recherche. beaucoup de mythes. Voici quelques-uns des mythes communément crus qui peuvent nuire à vos positions de moteur de recherche. Tout est une question de métabalises et de soumissions. C'est le mythe le plus répandu et le plus préjudiciable de tous, tenu par de nombreux concepteurs et développeurs Web. ...