Estoy tratando de implementar el "tutorial" de sacudidas en esta página, pero creo que me falta algo. Copié su función de acelerómetro en myAppViewController.m file y puse algunos nslogs allí para ver si incluso entra en la función cuando uso la función de simulación de "shake". No aparece nada en la consola de depuración.cómo detectar y programar batidos para el iphone
http://mithin.in/2009/07/28/detecting-a-shake-using-iphone-sdk
Puede alguien explicar lo que podría hacer falta? ¿O apuntarme a un tutorial?
me encontré con esto, que parece prometedor, pero no sé cómo "lo puso en un UIView" How do I detect when someone shakes an iPhone?
EDITAR - ahora aquí está mi código de trabajo debido a la sugerencia de la respuesta aceptada.
Aquí está mi código para detectar el gesto de agitar en 3.0 iphone sdk.
-(BOOL)canBecomeFirstResponder {
return YES;
}
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self becomeFirstResponder];
}
- (void)viewWillDisappear:(BOOL)animated {
[self resignFirstResponder];
[super viewWillDisappear:animated];
}
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
NSLog(@"{motion ended event ");
if (motion == UIEventSubtypeMotionShake) {
NSLog(@"{shaken state ");
}
else {
NSLog(@"{not shaken state ");
}
}
Sí, funciona en el simulador. – Neo42
En realidad, no es necesario llamar a 'becomeFirstResponder'. La única acción que se requiere para permitir que viewController responda a los eventos de movimiento es garantizar que viewController se convierta en firstResponder. Como se describe en el doco, UIView pasa los mensajes 'motionBegan' etc. a la cadena de respuesta, que eventualmente encontrarán el controlador de la vista, siempre que' canBecomeFirstResponder' devuelva SÍ. –