Astuce iOS Détecter les touches

Les écrans tactiles sont devenus le fondement de l’interaction des utilisateurs de smartphones modernes. Dans ce didacticiel, vous apprendrez à être averti lorsque l'utilisateur interagit avec l'écran tactile et à utiliser les événements tactiles de manière pratique..

Le SDK iOS fournit une vaste bibliothèque de contrôles pour vous aider à commencer à construire votre interface utilisateur sans avoir à manipuler des touches individuelles. Parfois, ces contrôles peuvent ne pas implémenter la fonctionnalité que vous recherchez et vous devrez peut-être traiter les événements tactiles vous-même..

En utilisant le framework UIKit, vous pouvez accéder à des événements tactiles de deux classes., UIView, et UIViewController, sous-classe, UIResponder qui implémente des événements tactiles.

En utilisant quatre des UIResponderAvec les méthodes, vous pouvez implémenter votre propre code sur les événements tactiles. Ces quatre méthodes sont:

  • touchesBegan: withEvent: - Envoyé quand les doigts sont touchés.
  • touchesEnded: withEvent: - Envoyé lorsque les doigts sont retouchés.
  • touchesMoved: withEvent: - Envoyé lorsque les doigts bougent sur l'écran tactile.
  • touchesCancelled: withEvent: - Envoyé lorsqu'un contact a été interrompu par un événement tel qu'un appel téléphonique.

Didacticiel Détection de touches

Créons maintenant une démonstration simple de ces événements tactiles. Créez un nouveau projet XCode. Sélectionnez? View Based Application "cliquez ensuite sur et entrez votre identifiant d'entreprise et? Touches" comme nom de projet.

Dans TouchesViewController.m, importez Quartz Core en ajoutant la ligne suivante:

 #importation 

Nous aurons besoin de Quartz Core pour faire apparaître des cercles à l’écran où les contacts se produisent.

Maintenant, dans le même fichier, remplacez le viewDidLoad méthode avec ce qui suit:

 - (void) viewDidLoad [super viewDidLoad]; [self.view setMultipleTouchEnabled: YES]; 

Cela activera le multi-touch à notre avis, donc un événement tactile contiendra plusieurs contacts que nous pourrons utiliser..

Maintenant, nous pouvons terminer avec le cœur de notre application en utilisant le touchesBegan: withEvent: un événement. Ajoutez la méthode suivante sous viewDidLoad:.

 -(void) touchesBegan: (NSSet *) touche withEvent: (UIEvent *) event // Supprimez les anciens cercles rouges à l'écran NSArray * subviews = [subjects auto.view]; for (UIView * view in subviews) [view removeFromSuperview];  // Énumérez toutes les touches et tracez un point rouge à l'écran où elles se trouvaient [touches enumerateObjectsUsingBlock: ^ (id obj, BOOL * stop) // Obtenir une seule touche et son emplacement. UITouch * touch = obj; CGPoint touchPoint = [touch locationInView: self.view]; // Trace un cercle rouge à l'endroit où le contact s'est produit UIView * touchView = [[UIView alloc] init]; [touchView setBackgroundColor: [UIColor redColor]]; touchView.frame = CGRectMake (touchPoint.x, touchPoint.y, 30, 30); touchView.layer.cornerRadius = 15; [auto.view addSubview: touchView]; [version TouchView]; ]; 

Cette méthode prend simplement le jeu de touches qui lui est transmis, boucle sur chaque touche et trace un cercle rouge à l'endroit où la touche s'est produite à l'écran..

Si vous construisez et exécutez votre application, vous devriez maintenant voir un produit final qui ressemble à ceci:

Et voilà, c'est tout ce dont vous avez besoin pour implémenter la gestion tactile personnalisée dans votre prochain projet iOS. Merci de votre lecture et si vous avez des questions / commentaires, vous pouvez laisser un commentaire ci-dessous.