0

ユーザーが行ったシェイクの回数をカウントしたい。

私たちはmotionBegan、motionEndedを試しましたが、役に立ちませんでした。

ユーザーがシェイクを開始または終了したときにのみ発射されるため、シェイクを連続してカウントしたい。

こんな感じでしょうか、iPhoneを左右に左右に振った場合を1回として数えます。

どんな助けでも大歓迎です。

ありがとう

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 に答える