iOS: как реализовать событие "Shake Device"?
Я хочу, чтобы в моем приложении появилось событие "Shake Device" - то есть когда пользователь встряхивает устройство, что-то происходит. Я пытался реализовать:
-(void) motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (event.subtype == UIEventSubtypeMotionShake) {
//something happens
}
}
Это не похоже на работу.......
Кто-нибудь знает, какой метод мне следует использовать?
3 ответа
Попробуйте использовать приведенный ниже код, он работал нормально для меня.
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
if ( event.subtype == UIEventSubtypeMotionShake )
{
//your code
}
if ( [super respondsToSelector:@selector(motionEnded:withEvent:)] )
[super motionEnded:motion withEvent:event];
}
- (BOOL)canBecomeFirstResponder
{
return YES;
}
Возможно, уже поздно отвечать, но в ваш viewDidLoad вам нужно включить.
[self becomeFirstResponder];
Дайте это попробовать.
В дополнение к решению Тейлора, также убедитесь, что ваш AppDelegate.m содержит это.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
application.applicationSupportsShakeToEdit = YES;
return YES;
}