2009-12-21 18 views

Répondre

4

sans écrire le code pour vous, voici ce que vous devez faire pour suivre un simple glissement multi-doigts:

  1. d'abord, définissez multipleTouchEnabled de votre point de vue propriété sur OUI afin que vous serez en mesure pour suivre plusieurs touches.
  2. Dans touchesBegan, stockez la propriété locationInView de chaque touche (il s'agit d'un CGPoint).
  3. Définissez une «fenêtre de balayage» qui limite la quantité de mouvement hors axe que vous accepterez et qui considère toujours le geste comme un balayage. Si, par exemple, vous cherchez à suivre les bandes horizontales, vous voudrez peut-être une "fenêtre de balayage" de 12x6 - c'est-à-dire, si vos touches déplacent au moins 12 pixels horizontaux tout en déplaçant moins de 6 pixels verticaux, Je le considérerai comme un coup.
  4. Dans touchesMoved, comparez l'emplacement actuel des touches avec les emplacements de départ stockés à l'étape 2. Si elles sont toujours dans la «fenêtre de balayage», ne faites rien. Si l'un des doigts ou les deux doigts se sont déplacés à l'extérieur de sa «fenêtre de balayage», annulez la vérification du balayage. S'ils ont tous les deux rempli les conditions d'un balayage, déclenchez la méthode que vous voulez appeler lorsque vous avez détecté un balayage multi-doigts.
  5. Dans 'touchEnded', arrêtez le suivi du balayage, car si les touches sont terminées mais que vous n'avez toujours pas activé la méthode de balayage à partir de # 4, elles ne doivent pas avoir constitué un balayage.

Espérons que cela aide.