我正在尝试开始倒计时,一旦倒数到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()
}
}
计时器一直运行,直到您按下invalidate
,在这里您只需要重置defaultTime:
@objc func action() {
if defaultTime == 0 {
defaultTime = 10
}
defaultTime -= 1
timerLabel.text = String(defaultTime)
}