摇一段时间?

时间:2015-12-13 08:42:22

标签: ios swift alarm shake

我想使用摇动功能来关闭闹钟,这会导致用户摇动手机30秒。有没有办法测试用户摇动设备的时间以及如何设置摇动功能?

顺便说一下,我只能理解快速代码。

2 个答案:

答案 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并使计时器无效。