0

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

我们尝试了motionBegan、motionEnded,但没有用。

因为它们仅在用户开始摇动或结束摇动时才会被触发,但我想连续计数摇动。

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

任何帮助,将不胜感激。

谢谢

4

1 回答 1

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 推荐的内容。我还没有关于这个话题的更新。这是有关它的文档:链接

于 2012-06-19T07:05:02.747 回答