Обнаружение встряхивания iPhone 3.0 не работает - PullRequest
0 голосов
/ 10 октября 2009

У меня есть ViewController, который отлично работает с кнопкой, которая запускает действие. Я хотел бы заменить кнопку на событие встряхивания, поэтому я нашел ее в Google и создал класс ShakeDetector, который наследует UIView

и моя реализация выглядит следующим образом:

@implementation ShakeDetector

    - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {
    }

    - (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {
        if (motion == UIEventSubtypeMotionShake )
        {
            // User was shaking the device. Post a notification named "shake".
            //[[NSNotificationCenter defaultCenter] postNotificationName:@"spin" object:self];
            NSLog(@"sss");
        }
    }

    - (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event
    {   
    }

@end

Но я не могу заставить это работать ... любая помощь?

Спасибо

1 Ответ

1 голос
/ 15 октября 2009

Положено:

    -(BOOL)canBecomeFirstResponder
{
    return YES;
}

и на ваш взгляд:

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

Вы также можете написать это в viewWillAppear и viewWillDisappear

...