ユーザーが行ったシェイクの回数をカウントしたい。
私たちはmotionBegan、motionEndedを試しましたが、役に立ちませんでした。
ユーザーがシェイクを開始または終了したときにのみ発射されるため、シェイクを連続してカウントしたい。
こんな感じでしょうか、iPhoneを左右に左右に振った場合を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 が推奨するものを使用する必要があることを意味します。このトピックについてはまだ更新されていません。これに関するドキュメントは次のとおりです。