我们想计算用户完成的摇动次数。
我们尝试了motionBegan、motionEnded,但没有用。
因为它们仅在用户开始摇动或结束摇动时才会被触发,但我想连续计数摇动。
可能是这样的,当用户将 iPhone 向左移动和向右移动时,我将其视为一次摇动。
任何帮助,将不胜感激。
谢谢
您可以使用UIAccelerometer
来实现您想要的。
您使用 motionBegin 检测开始:
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
UIAccelerometer* acc = [UIAccelorometer sharedAccelerometer];
acc.delegate = self;
acc.updateInterval = /* whatever you feel like OK */ 0.1;
}
- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
UIAccelerometer* acc = [UIAccelorometer sharedAccelerometer];
acc.delegate = nil;
}
在委托方法中:
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
//
// You detect a full shake
//
}
在实现这个之前,你应该知道 UIAccelerometer 在 iOS5 中已经被弃用了。这意味着您将不得不改用 Apple 推荐的内容。我还没有关于这个话题的更新。这是有关它的文档:链接。