我们想要计算用户完成的震动次数。
我们尝试过motionBegan,motionEnded但它毫无用处。
因为只有当用户开始摇晃或结束摇晃时它们才会被触发,但我想连续摇晃。
可能是这样的,当用户将iPhone向左侧移动并向右侧移动时,我将其视为一次摇动。
任何帮助都将不胜感激。
由于
答案 0 :(得分:1)
您可以使用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推荐使用的内容。我还没有更新这个主题。 以下是有关它的文档:link。