swift - Timer counts instantly instead of respecting interval -
im trying make countdown timer. works fine except timer not count @ regular intervals (1sec); instead counts way down instantly giving me 0 every time. did lot of search without luck. examples find show similar timeinterval parameter.
var timer = timer() var remainingtime = 120 @objc func timercount () { if remainingtime > 0 { while remainingtime > 0 { remainingtime -= 1 timerlabel.text = string(remainingtime) print(remainingtime) } } else { timer.invalidate() } } @ibaction func pausebutton(_ sender: any) { timer.invalidate() } @ibaction func playbutton(_ sender: any) { timer = timer.scheduledtimer(timeinterval: 1, target: self, selector: #selector(self.timercount), userinfo: nil, repeats: true) }
the reason code not working have put unnecessary while loop in timercount() method. don't need this. timer fire method after each time interval. @ first call while loop make remainingtime 0. why instantly getting 0 every time.
you need remove while loop.
Comments
Post a Comment