如何在 Swift 的 AppDelegate 中(跨整个应用程序)检测设备抖动?
我找到了描述如何在视图控制器中这样做的答案,但希望在我的应用程序中这样做。
如何在 Swift 的 AppDelegate 中(跨整个应用程序)检测设备抖动?
我找到了描述如何在视图控制器中这样做的答案,但希望在我的应用程序中这样做。
如果要全局检测抖动,UIWindow 实现了可以接收抖动事件的 UIResponder。您可以将以下代码段添加到 AppDelegate
extension UIWindow {
open override func motionEnded(_ motion: UIEventSubtype, with event: UIEvent?) {
if motion == .motionShake {
print("Device shaken")
}
}
}
在您的 中添加以下代码段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")
}
}