Apple a annoncé Shake API dans iPhone SDK 3.0. Je ne trouve aucune information concernant cette nouvelle fonctionnalité.Comment utiliser l'API Shake dans iPhone SDK 3.0?
Qui sait comment l'utiliser? N'importe quel exemple, le lien sera bon.
Apple a annoncé Shake API dans iPhone SDK 3.0. Je ne trouve aucune information concernant cette nouvelle fonctionnalité.Comment utiliser l'API Shake dans iPhone SDK 3.0?
Qui sait comment l'utiliser? N'importe quel exemple, le lien sera bon.
Les API que vous recherchez sont en 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 mettre en œuvre 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 le gérer dans motionEnded: withEvent :, pas motionBegan: withEvent :. motionBegan: withEvent: est appelé lorsque le téléphone suspecte que des secousses se produisent, mais le système d'exploitation peut déterminer la différence entre un utilisateur secouant délibérément et les secousses accidentelles (comme monter les escaliers). Si le système d'exploitation décide que ce n'était pas un véritable tremblement après motionBegan: withEvent: s'appelle il appellera motionCancelled: au lieu de motionEnded: withEvent :.
Joe Hewitt récemment committed du code à Three20 qui utilise l'événement de secousse 3.0. On dirait que vous avez juste besoin d'implémenter du code simple dans -motionBegan:withEvent:
à l'intérieur de votre UIResponder
.
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.type == UIEventSubtypeMotionShake) {
...
}
}
J'ai posté un exemple 3.0 complet dans ce fil:
Merci, je l'ai lu. Mais cette approche n'utilise pas de nouvelle API. – sashaeve
Continuez à lire, ma réponse à ce poste utilise 3.0. J'utilise les événements postés ci-dessus, seulement j'explique aussi le fait de devoir configurer UIView pour être le premier répondeur qui est crucial pour que cela fonctionne réellement. –
Ai-je raison si je dis que nous devons ajouter le code '[auto becomeFirstResponder];' sur le point de vue dont nous avons besoin geste de secouer pour travail? –
Vous auriez raison de dire cela. Aussi: (BOOL) canBecomeFirstResponder {return YES;} – akaru