Вы можете реализовать что-то подобное ниже в контроллере (или на самом деле любом UIResponder ...). Они доступны в версии 3.0 и позже. Вам не нужно опускаться до уровня акселерометра, если вы не хотите делать сложные вещи, зависит от того, сколько деталей вы хотите от встряхивания.
- (void)viewDidAppear:(BOOL)animated {
[self becomeFirstResponder];
}
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (motion==UIEventSubtypeMotionShake) {
if ([self paused]) {
[self play];
}
}
}
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (motion==UIEventSubtypeMotionShake) {
if ([self playing]) {
[self pause];
}
}
}
- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (motion==UIEventSubtypeMotionShake) {
if ([self playing]) {
[self pause];
}
}
}