Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Распознавание встряхивания не работает на iOS 4, работает на iOS 5

Автор вопроса: FelixFОтветов: 1

Я интегрировал в свое приложение распознавание встряхивания. Я поместил его в свой appdelegate, чтобы иметь возможность использовать его во всем приложении. Он отлично работает на iOS 5, но на iOS 4 не работает.

Я использую в своем appdelegate.m следующий код:

- (void)applicationDidBecomeActive:(UIApplication *)application {
   [self becomeFirstResponder];
   ....
}

-(BOOL)canBecomeFirstResponder {
   return YES;
}

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
    NSLog(@"motionBegan");
}

-(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event{
    NSLog(@"motionEnded");
}

Если я запускаю это в симуляторе iOS5 и активирую жест встряхивания, я получаю сообщения NSLog. Если я запустил его в симуляторе iOS 4.3, он не сработает. То же самое и с реальными устройствами.

  • у вас такая же проблема, вы ее решили? Raheel Sadiq 05.03.2013

xcodeiosshake

Ответы

Ответ 1 · рейтинг 2 · user1248465

Я была такая же проблема. Пытаться

- (void)viewDidAppear:(BOOL)animated {
   [self becomeFirstResponder];
}

вместо

- (void)applicationDidBecomeActive:(UIApplication *)application {
   [self becomeFirstResponder];
   ....
}

как в Руководство по обработке событий: события движения. Это сработало для меня.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы