У меня есть подкласс UIViewController, который я пытаюсь обработать событие shake при его просмотре.motionEnded получение вызова несколько раз
Вот соответствующие методы я реализованы:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self becomeFirstResponder];
}
- (void)viewDidDisappear:(BOOL)animated {
[self resignFirstResponder];
[super viewDidDisappear:animated];
}
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (motion == UIEventTypeMotion && event.type == UIEventSubtypeMotionShake) {
NSLog(@"%@ motionEnded", [NSDate date]);
}
if ([super respondsToSelector:@selector(motionEnded:withEvent:)]) {
[super motionEnded:motion withEvent:event];
}
}
Вы бы ожидать, что, когда я ударил^+ Cmd + Z в iPhone Simulator, что было бы просто войти сразу, но последовательно регистрации дважды для каждого события. Ниже приведен результат трех "трясти" моделирование:
2009-10-09 20: 52: 06,216 TestApp [39802: 20b] 2009-10-09 20:52:06 -0400 motionEnded
2009-10- 09 20: 52: 06.218 TestApp [39802: 20b] 2009-10-09 20:52:06 -0400 motionEnded
2009-10-09 20: 52: 07.689 TestApp [39802: 20b] 2009-10-09 20: 52:07 -0400 motionEnded
2009-10-09 20: 52: 07.690 TestApp [39802: 20b] 2009-10-09 20:52:07 -0400 motionEnded
2009-10-09 20: 52: 08.001 TestApp [39802: 20b] 2009-10-09 20:52:08 -0400 motionEnded
2009-10-09 20: 52: 08.002 TestApp [39802: 20b] 2009-10-09 20:52:08 -0400 motionEnded
Кто-нибудь видел это, и если да, то как вы его исправили? Я использую iPhone SDK 3.1 и Xcode Version 3.1.4.
Вы все это исправили? У меня такая же проблема – Mark