我的计时器在一轮后停止

时间:2017-10-11 00:41:05

标签: ios iphone swift vibrate

我有这个代码是为了让我的手机不断振动。但它在1次振动后停止。我的计时器有问题吗?

var timer: Timer?

@IBAction func button1(_ sender: UIButton) {
    AudioServicesPlayAlertSound(kSystemSoundID_Vibrate)
    timer?.invalidate()
    timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: Selector(("doaction")), userInfo: nil, repeats: true)   
}

我做错了什么?救命?我也在使用swift的xcode。如果重要的话,可以使用iphone 7 plus。

2 个答案:

答案 0 :(得分:1)

计时器在一轮后不会停止振动。计时器从不振动。

计时器的作用是重复调用doaction方法。但doaction方法不会产生任何振动。因此唯一的振动是button1中的唯一振动。

答案 1 :(得分:0)

振动仅在您点击按钮时发生,您需要在“doaction”方法中发生振动:

var timer: Timer?

@IBAction func button1(_ sender: UIButton) {
    doaction()
    timer?.invalidate()
    timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: Selector(("doaction")), userInfo: nil, repeats: true)   
}

func doaction() {
    AudioServicesPlayAlertSound(kSystemSoundID_Vibrate)
}