2010-10-15 3 views
0

récemment j'ai utilisé ce code pour gérer des touches de glisser:2 touches problème

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 

mais mon problème lorsque l'utilisateur touche 2 boutons en même temps que celui qu'on appelle comment résoudre ce problème?

+0

N'oubliez pas implémenter touchCanceled :. – Eiko

Répondre

0

remercie tous pour les réponses, mais dans mon code i utilisé UITouch *t =[..]; il est ok si je l'ai mis dans une boucle pour (UITouch *t in ... ) donc lorsque le toucher de l'utilisateur 2 doigts simultanément la méthode appelée deux fois

0

Le UIGestureRecognizer est facile à mettre en œuvre, et moins d'erreurs au sujet de la gestion des événements de contact. Lorsque le second bouton est pressé, l'événement de presse peut être entré sur les touchesBegan, touchesMoved, ou touchEnded, vous devez vérifier [touches nombre] à ces endroits. Mais si vous voulez gérer le comportement de glisser, le bouton touchesMoved est le meilleur endroit pour vérifier deux touches ou une seule touche. Comme l'a dit Eiko, vous devez implémenter touchedCanceled. La séquence d'événement tactile peut être

  • touchedBegan -> touchedMoved -> touchedEnded -> touchedCanceled,
  • ou touchedBegan -> touchedMoved -> touchedCanceled (pas d'touchedEnded).

S'il n'y a aucun mouvement, touchedMoved ne sera pas appelé. Cela signifie que la séquence de l'événement tactile sera

  • touchedBegan -> touchedEnded -> touchedCanceled.
  • ou touchedBegan -> touchedCanceled.