iOSアプリ開発でシェイクを検出する
iOSアプリ開発で、シェイクジェスチャーを検出する方法のメモです。
Udemy の講座 完全攻略!初心者からプロになるためのiOS 9アプリ開発のすべて のレクチャー83 を参考にしています。
開発環境
シェイクジェスチャーを検出する
viewcontroller に以下のコードを書きます。
override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent?) {
if motion == UIEventSubtype.MotionShake {
print("Device was shaked")
}
}
if motion == UIEventSubtype.MotionShake {
print("Device was shaked")
}
}
print 文の箇所が、シェイクジェスチャーを検出した場合に実行されます。
ちょっと疑問
Udemyの講座でもネットで調べても、if motion == UIEventSubtype.MotionShake の部分が if event?.subEventType == UIEventSubtype.MotionShake になっています。せっかく motion 引数が渡されているのに、なぜ後者の方法を取るのでしょうね? ドキュメントで motionEnded メソッドを調べても特に注意は書かれていませんでしたし、このメソッドが書かれているサンプルプロジェクト(GLPaint)では motion == の書き方をしていました。なので motion == でもきっと問題ないでしょう。