Question

Apple annonced API Shake iPhone SDK 3.0. Je ne peux trouver aucune information concernant cette nouvelle fonctionnalité.

Qui sait comment l'utiliser? Tout exemple, lien sera bon.

Était-ce utile?

La solution

Les API que vous recherchez sont dans UIResponder :

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event;
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event;
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event;

En général, vous implémentez ceci:

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
  if (event.type == UIEventSubtypeMotionShake) {
    //Your code here
  }
}

dans votre sous-classe UIViewController (UIViewController est une sous-classe de UIResponder). Aussi, vous voulez gérer dans motionEnded: withEvent :, pas motionBegan: withEvent :. motionBegan: withEvent: est appelé lorsque les suspects de téléphone secousse qui se passe, mais le système d'exploitation peut déterminer la différence entre un utilisateur secouant délibérément et secousses accessoires (comme la marche dans les escaliers). Si le système d'exploitation décide qu'il était pas un vrai tremblement après motionBegan: withEvent: est appelé appellera motionCancelled: au lieu de motionEnded: withEvent:.

Autres conseils

J'ai posté un exemple 3.0 complet dans ce fil:

Comment puis-je détecter quand quelqu'un secoue un iPhone?

Joe Hewitt a récemment engagé code pour Three20 qui utilise l'événement 3.0 secousse. On dirait que vous avez juste besoin de mettre en œuvre un certain code simple dans les -motionBegan:withEvent: à l'intérieur de votre UIResponder .

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    if (event.type == UIEventSubtypeMotionShake) {
        ...
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top