この回答で説明されているようにシェイク ジェスチャを実装していますが、携帯電話を 1 秒以上シェイクすると、motionEnded が呼び出されません。
OS によって保証されている motionBegan イベントと motionEnded イベントの 1 対 1 の比率はありませんか、それともレスポンダー チェーンに問題があり、イベントが別の場所に送信されているのでしょうか?
この回答で説明されているようにシェイク ジェスチャを実装していますが、携帯電話を 1 秒以上シェイクすると、motionEnded が呼び出されません。
OS によって保証されている motionBegan イベントと motionEnded イベントの 1 対 1 の比率はありませんか、それともレスポンダー チェーンに問題があり、イベントが別の場所に送信されているのでしょうか?
またはのいずれmotionEnded:withEvent:
かmotionCancelled:withEvent:
を呼び出す必要があります。のドキュメントからmotionCancelled:withEvent:
このメソッドは、Cocoa Touch フレームワークがモーション イベントのキャンセルを必要とする割り込みを受け取ったときに呼び出されます。この中断により、アプリケーションがアクティブでなくなったり、ビューがウィンドウから削除されたりする可能性があります。揺れが長すぎる場合にも、このメソッドを呼び出すことができます。