我想知道用户何时停止摇晃,何时停止摇晃,我想关闭alertViewController。任何帮助将不胜感激。谢谢。
我已经尝试使用motionEnded和motionBegan方法。
这是我的代码。当用户停止摇动手机时,我想关闭alertViewController。
let alertController = UIAlertController(title: nil, message:
"Shaking", preferredStyle: UIAlertController.Style.alert)
override func motionBegan(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
if motion == .motionShake {
self.present(alertController, animated: true, completion: nil)
}
}
override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
if alertController.isBeingPresented {
alertController.dismiss(animated: true, completion: nil)
}
}
答案 0 :(得分:1)
使用以下方法结束运动,有关更多信息,请参见此帖子https://developer.apple.com/documentation/uikit/uiresponder/1621090-motionended
在委托方法之外声明alertController
。
let alertController = UIAlertController(title: nil, message:
"Shaking", preferredStyle: UIAlertController.Style.alert)
override func motionBegan(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
if motion == .motionShake && !alertController.isBeingPresented {
self.present(alertController, animated: true, completion: nil)
}
}
override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
if motion == .motionShake {
alertController.dismiss(animated: true, completion: nil)
}
}