我想使用摇动功能来关闭闹钟,这会导致用户摇动手机30秒。有没有办法测试用户摇动设备的时间以及如何设置摇动功能?
顺便说一下,我只能理解快速代码。
答案 0 :(得分:0)
我不确定你是否可以附加一个计时器来摇动手势,但也许你可以设置一个计数器来观察它触发了多少次?
要捕捉摇动手势,只需将此方法添加到视图控制器:
override func motionBegan(motion: UIEventSubtype, withEvent event: UIEvent?) {
if motion == .MotionShake {
print("Device was shaken!")
}
}
答案 1 :(得分:0)
你可以这样做
var timer = NSTimer()
override func motionBegan(motion: UIEventSubtype, withEvent event: UIEvent?) {
if motion == .MotionShake {
print("Device shaken, shake timer started")
timer = NSTimer.scheduledTimerWithTimeInterval(30, target: self, selector: Selector("turnOffAlarm"), userInfo: nil, repeats: true)
}
else{
timer.invalidate()
}
}
func turnOffAlarm(){
print("Alarm off")
timer.invalidate()
}
当用户开始摇动手机时,你会以30秒的间隔启动你的计时器,如果用户停止摇动,你将调用无效,否则30秒后你将调用turnOffAlarm并使计时器无效。