Ios 摇一段时间?
我想使用shake功能关闭闹钟,这会导致用户摇晃手机30秒。是否有办法测试用户摇晃设备的时间,以及如何设置摇晃功能Ios 摇一段时间?,ios,swift,alarm,shake,Ios,Swift,Alarm,Shake,我想使用shake功能关闭闹钟,这会导致用户摇晃手机30秒。是否有办法测试用户摇晃设备的时间,以及如何设置摇晃功能 顺便说一句,我只懂swift代码。我不确定你是否可以附加一个定时器来抖动手势,但也许你可以设置一个计数器来观察它被触发了多少次 要捕捉抖动手势,只需将此方法添加到视图控制器: override func motionBegan(motion: UIEventSubtype, withEvent event: UIEvent?) { if motion == .MotionS
顺便说一句,我只懂swift代码。我不确定你是否可以附加一个定时器来抖动手势,但也许你可以设置一个计数器来观察它被触发了多少次 要捕捉抖动手势,只需将此方法添加到视图控制器:
override func motionBegan(motion: UIEventSubtype, withEvent event: UIEvent?) {
if motion == .MotionShake {
print("Device was shaken!")
}
}
你可以这样做
var timer = Timer()
override func motionBegan(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
if motion == .motionShake {
print("Device shaken, shake timer started")
timer = Timer.scheduledTimer(timeInterval: 30, target: self, selector: #selector(turnOffAlarm), userInfo: nil, repeats: true)
}
}
override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
if motion == .motionShake {
print("Device shake stop, shake timer stopeed")
timer.invalidate()
}
}
@objc func turnOffAlarm() {
print("Alarm off")
timer.invalidate()
}
当用户开始摇晃手机时,您以30秒的间隔启动计时器,如果用户停止摇晃,您将在30秒后调用invalidate,否则,您将调用turnOffAlarm并使计时器无效。如果用户在该时间内停止摇晃,则不会停止计时器period@RudolfJ,你说得对。使用
motionEnded
功能更新答案。