如何在时间用完后自动重启计时器?

问题描述 投票:-2回答:1

我正在尝试开始倒计时,一旦倒数到0,就会自动将计时器从10重新开始。我觉得这应该很简单,但是我遇到了问题。

@IBOutlet weak var timerLabel: UILabel!

var defaultTime = 10
var timer = Timer()

func startTimerFunc() {
    timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.action), userInfo: nil, repeats: true)
}

@IBAction func startTimerBtn(_ sender: UIButton) {
    startTimerFunc()
}

func resetTimer() {
    timer.invalidate()
    defaultTime = 0
}

@objc func action() {

    defaultTime -= 1
    timerLabel.text = String(defaultTime)

    if timerLabel.text == "0" {
        resetTimer()
        startTimerFunc()
    }
}
swift xcode countdowntimer
1个回答
-1
投票

计时器一直运行,直到您按下invalidate,在这里您只需要重置defaultTime:

@objc func action() {
    if defaultTime == 0 {
        defaultTime = 10
    }
    defaultTime -= 1
    timerLabel.text = String(defaultTime)
}
© www.soinside.com 2019 - 2024. All rights reserved.