iPhone计数震动次数

时间:2012-06-19 06:38:39

标签: iphone ios

我们想要计算用户完成的震动次数。

我们尝试过motionBegan,motionEnded但它毫无用处。

因为只有当用户开始摇晃或结束摇晃时它们才会被触发,但我想连续摇晃。

可能是这样的,当用户将iPhone向左侧移动并向右侧移动时,我将其视为一次摇动。

任何帮助都将不胜感激。

由于

1 个答案:

答案 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