J'utilise ce code pour faire la détection de tremblement, et pour la plupart, il fonctionne très bien:motionEnded fonctionne très bien jusqu'à ce que je clique sur un lien dans un webView
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.type == UIEventSubtypeMotionShake) {
if (event.subtype == UIEventSubtypeMotionShake)
{
NSLog (@"Shake Called");
}
}
Je crois que cela fonctionne, j'ai aussi nécessaire d'utiliser ceux-ci, que j'ai:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self becomeFirstResponder];
}
- (void)viewDidDisappear:(BOOL)animated {
[self resignFirstResponder];
[super viewDidDisappear:animated];
}
tout cela fonctionne très bien, et motionEnded
est appelé à chaque fois que je secoue, jusqu'à ce que je clique par un lien dans un webView
sur mon programme. Je peux faire défiler vers le haut et vers le bas dans la vue et secouer fonctionne toujours, mais dès que la vue charge une nouvelle page, motionEnded
cesse d'être appelée quand je secoue. Cela se produit à la fois dans le simulateur et sur un appareil réel (iPhone 3G, iOS4). D'après ma compréhension limitée, je crois que cela a quelque chose à voir avec les premiers intervenants, mais je peux me tromper là-bas!
Jamais esprit, j'ai trouvé la réponse ici: http://stackoverflow.com/questions/1547805/shake-detection-iphone-3-0-not-working je devais avoir cette fonction définie: - (BOOL) canBecomeFirstResponder { return YES; } – Minthos