2010-04-03 7 views

Répondre

2

Utilisez le UIAccelerometer et mettre en œuvre le protocole UIAccelerometerDelegate dans votre classe. Peut-être que vous pourriez faire quelque chose comme ceci:

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acc { 
    float twoGs = 2.0; 
    if ((acc.x * acc.x) + (acc.y * acc.y) + (acc.z * acc.z) > twoGs * twoGs) { 
    if ([self paused]) { 
     [self play]; 
    } 
    } else { 
    if ([self playing]) { 
     [self pause]; 
    } 
    } 
} 

pour les implémentations appropriées de la pause, pause, lecture, sélecteurs de lecture.

0

Cela a été répondu avant here. J'utilise une version modifiée du code proposé ici, et cela fonctionne très bien. Notez que dans les versions à venir du système d'exploitation, vous serez en mesure de détecter les gestes de secousse via l'API standard.

3

Vous pouvez implémenter quelque chose comme ceci ci-dessous dans un contrôleur (ou n'importe quel UIResponder en fait ...). Ceux-ci sont disponibles en version 3.0 et ultérieure. Vous n'avez pas besoin de descendre au niveau de l'accéléromètre si vous ne voulez pas faire des choses avancées, cela dépend du niveau de détails que vous voulez.

- (void)viewDidAppear:(BOOL)animated { 
    [self becomeFirstResponder]; 
} 

- (BOOL)canBecomeFirstResponder { 
    return YES; 
} 

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event { 
    if (motion==UIEventSubtypeMotionShake) { 
     if ([self paused]) { 
      [self play]; 
     } 
    } 
} 

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event { 
    if (motion==UIEventSubtypeMotionShake) { 
     if ([self playing]) { 
      [self pause]; 
     } 
    } 
} 

- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event { 
    if (motion==UIEventSubtypeMotionShake) { 
     if ([self playing]) { 
      [self pause]; 
     } 
    } 
} 
+1

Merci pour cette réponse. C'est une autre solution acceptable (j'aimerais pouvoir marquer les deux à droite) – wgpubs

Questions connexes