SwiftでAppDelegateのデバイスの揺れを(アプリケーション全体で)どのように検出できますか?AppDelegateでの揺れの検出
私は、View Controllerでこれを行う方法を説明していますが、私のアプリ全体でそうしたいと考えている回答が見つかりました。
SwiftでAppDelegateのデバイスの揺れを(アプリケーション全体で)どのように検出できますか?AppDelegateでの揺れの検出
私は、View Controllerでこれを行う方法を説明していますが、私のアプリ全体でそうしたいと考えている回答が見つかりました。
あなたAppDelegate
に次のコードを追加します。
override func motionBegan(motion: UIEventSubtype, withEvent event: UIEvent?) {
if motion == .MotionShake {
print("Device shaken")
}
}
スウィフト3.0バージョン:
override func motionBegan(_ motion: UIEventSubtype, with event: UIEvent?) {
if motion == .motionShake {
print("Device shaken")
}
}
これは機能しませんでした。これは、アプリケーションデリゲートがレスポンダーチェーンにないためです。 – phatmann
swift3で動作していません –
@SaRaVaNaNDM、これは単にテストされており、以前にテストされていることを確認してください。何かエラーがありましたか?どのように実装しましたか? –
あなたが手ぶれ動きを検出グローバルにしたい場合は、UIWindowはUIResponderを実装して手ぶれを受け取ることができますモーションイベント。あなたは
extension UIWindow {
open override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) {
if motion == .motionShake {
print("Device shaken")
}
}
}
の
これは私のために働いた。それを(UIWindow拡張なしで)追加するだけで、アプリケーションデリゲートに入れても機能しませんでした。 iOS 10.3/Xcode8.3のfuncの前に 'open'を追加しなければなりませんでした。 –
かなり違って、motionBeganが呼び出されますが、motionEndedは呼び出されません。 – User9527
可能な重複[誰かがiPhoneを振るとき、私は検出する方法は?](http://stackoverflow.com/questions/150446/how-do-i-detect-をAppDelegateには、以下のスニペットを追加することができますwhen-someone-shakes-an-iphone) – fishinear