振動動作を検出する
KakaoTalkのホームページでshakemotionで2次元スキャンを実現!
ほほほ、しかし彼は私にすべての方法を提供してくれた.
stackoverflowで素敵なものを見つけました.5年前の文章ですが、どうしたらいいか・・・
motionEnded (_:with:)
UIView ビューがビューコンソールのルートビューの場合)next応答器はビューコンソールです. でない場合、next応答器はビューの「スーパービュー」 を表示する.
UIViewController windowのルートビュー)next responderはwindowオブジェクト です.がある場合、next rependerは「ビューコントローラ」 を表示します.
UIWindow
Next ResponderはUIアプリケーションです
UIApplication
Next ResponderはAppDelegateです(条件:ビュー、ビューコンテキスト、アプリケーションオブジェクトではなくUI Responderのインスタンスです).
ああ👀
そこで先ほどmotionBegan(~~)メソッドシリーズは基本的に応答チェーンに従って伝達されていたので,応答の例としてイベント処理方法が実現されていなければ,この応答チェーンに従って処理が完了するまで上へ移動する.上昇の意味
結果
ほほほ、しかし彼は私にすべての方法を提供してくれた.
stackoverflowで素敵なものを見つけました.5年前の文章ですが、どうしたらいいか・・・
motionEnded (_:with:)
receiver motion eventの終了を通知します.func motionEnded(_ motion: UIEvent.EventSubtype,
with event: UIEvent?)
パラメータを見て
motion
動作タイプを表すevent-サブタイプ定数.UIEvent.EventSubtypeと認識!普通の動作は揺れです.
種類はいろいろあります./// extension UIEvent
public enum EventSubtype : Int {
// available in iPhone OS 3.0
case none = 0
// for UIEventTypeMotion, available in iPhone OS 3.0
case motionShake = 1
// for UIEventTypeRemoteControl, available in iOS 4.0
// auido, video에 대한 이벤트를 추적한다!
case remoteControlPlay = 100
case remoteControlPause = 101
case remoteControlStop = 102
case remoteControlTogglePlayPause = 103
case remoteControlNextTrack = 104
case remoteControlPreviousTrack = 105
/// audio, video를 통해 거꾸로 탐색하는 것을 종료하는 이벤트 추적
case remoteControlBeginSeekingBackward = 106
case remoteControlEndSeekingBackward = 107
case remoteControlBeginSeekingForward = 108
case remoteControlEndSeekingForward = 109
}
event
motionに関連するイベントを処理するオブジェクト
参考として、UIKITは、応答者に動作イベントの開始と終了のみを通知する.だから真ん中の振動は報告されません...
アクションイベントは、最初の応答者に適切に渡されます.必要に応じてトランスポンダチェーンに転送します.
この方法の基本的な実装は応答チェーンによって伝達される.なんだ.
あ、また後で会います.本当です.
motionBegan(_:with:)
動作活動の開始をreceiverに伝える方法でもあります
パラメータも同じです
motionCancelled(_:with:)
これも同じですアクションアクティビティがキャンセルされた場合に通知します.
でも.Shake motionでは果たしてキャンセルが起こるのか…?ありますか.
ああ...アプリケーションを無効にするか、ウィンドウからモーションイベントを処理するビューを削除すると停止します.
このメソッドは、ジッタが長く続いたときに呼び出されます.本当に歯を食いしばって振って、この方法が呼び出されました.
アクションイベントを処理する応答者は、この方法を実装する必要があります.
従って、実施時には、動作イベント処理に関する状態情報がclean up
である!
適用 override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
if event?.subtype == .motionShake {
coordinator?.presentQrView()
}
}
override func motionCancelled(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
print("motionCancelled")
}
使用するViewControllerでは,動きを検出する方法を誇張した.
コーディネータモードを使用しているので、動きが発生したときにqrViewを表示する方法を呼び出すことができます.
簡単なので、この世界に感謝します.
Responder Chain
イベントはFirstResponderから始まり、ビュー階層-window-appオブジェクトに到達します.
とにかくこれによって.
func motionEnded(_ motion: UIEvent.EventSubtype,
with event: UIEvent?)
/// extension UIEvent
public enum EventSubtype : Int {
// available in iPhone OS 3.0
case none = 0
// for UIEventTypeMotion, available in iPhone OS 3.0
case motionShake = 1
// for UIEventTypeRemoteControl, available in iOS 4.0
// auido, video에 대한 이벤트를 추적한다!
case remoteControlPlay = 100
case remoteControlPause = 101
case remoteControlStop = 102
case remoteControlTogglePlayPause = 103
case remoteControlNextTrack = 104
case remoteControlPreviousTrack = 105
/// audio, video를 통해 거꾸로 탐색하는 것을 종료하는 이벤트 추적
case remoteControlBeginSeekingBackward = 106
case remoteControlEndSeekingBackward = 107
case remoteControlBeginSeekingForward = 108
case remoteControlEndSeekingForward = 109
}
動作活動の開始をreceiverに伝える方法でもあります
パラメータも同じです
motionCancelled(_:with:)
これも同じですアクションアクティビティがキャンセルされた場合に通知します.
でも.Shake motionでは果たしてキャンセルが起こるのか…?ありますか.
ああ...アプリケーションを無効にするか、ウィンドウからモーションイベントを処理するビューを削除すると停止します.
このメソッドは、ジッタが長く続いたときに呼び出されます.本当に歯を食いしばって振って、この方法が呼び出されました.
アクションイベントを処理する応答者は、この方法を実装する必要があります.
従って、実施時には、動作イベント処理に関する状態情報がclean up
である!
適用 override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
if event?.subtype == .motionShake {
coordinator?.presentQrView()
}
}
override func motionCancelled(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
print("motionCancelled")
}
使用するViewControllerでは,動きを検出する方法を誇張した.
コーディネータモードを使用しているので、動きが発生したときにqrViewを表示する方法を呼び出すことができます.
簡単なので、この世界に感謝します.
Responder Chain
イベントはFirstResponderから始まり、ビュー階層-window-appオブジェクトに到達します.
とにかくこれによって.
override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
if event?.subtype == .motionShake {
coordinator?.presentQrView()
}
}
override func motionCancelled(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
print("motionCancelled")
}
使用するViewControllerでは,動きを検出する方法を誇張した.コーディネータモードを使用しているので、動きが発生したときにqrViewを表示する方法を呼び出すことができます.
簡単なので、この世界に感謝します.
Responder Chain
イベントはFirstResponderから始まり、ビュー階層-window-appオブジェクトに到達します.
とにかくこれによって.
UIView
UIViewController
UIWindow
Next ResponderはUIアプリケーションです
UIApplication
Next ResponderはAppDelegateです(条件:ビュー、ビューコンテキスト、アプリケーションオブジェクトではなくUI Responderのインスタンスです).
そこで先ほどmotionBegan(~~)メソッドシリーズは基本的に応答チェーンに従って伝達されていたので,応答の例としてイベント処理方法が実現されていなければ,この応答チェーンに従って処理が完了するまで上へ移動する.上昇の意味
結果
ビデオだからわからないけど揺れるあの
笑顔:
Reference
この問題について(振動動作を検出する), 我々は、より多くの情報をここで見つけました
https://velog.io/@leeinae/iOS-shake-Motion-감지하기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(振動動作を検出する), 我々は、より多くの情報をここで見つけました https://velog.io/@leeinae/iOS-shake-Motion-감지하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol