Ich habe irgendwie ein Problem mit einem Timer, was ich gar nicht verstehe.
Variablen für den Timer
Start des Timers
Auswertung
Alles anzeigen
Während es läuft, wird der Timer gefühlt zweimal pro Sekunde aufgerufen.
Und dann nach dem "countDown?.invalidate()" läuft der Timer weiter und ab da tatsächlich sekündlich.
Was mache ich falsch und habe ich nicht verstanden?
Variablen für den Timer
Start des Timers
Auswertung
Quellcode
- @objc func countdown() {
- var countDown: Float = 0.00
- countdownzaehler += 1
- countDown = Float(countdownzaehler) / Float(spiellaenge)
- Outlet_CountDown.progress = countDown
- if (countdownzaehler > spiellaenge) {
- countdownzaehler = 0
- lives -= 1
- if lives==0 {
- countDownTimer?.invalidate()
- }
- }
- let spielzeit50P = Int(spiellaenge / 2)
- let spielzeit75P = Int(spiellaenge / 4 * 3)
- let spielzeit5v = Int(spiellaenge - 5)
- if countdownzaehler==1 {
- Outlet_CountDown.progressTintColor = UIColor.systemGreen
- }
- if countdownzaehler > spielzeit50P {
- Outlet_CountDown.progressTintColor = UIColor.systemYellow
- }
- if countdownzaehler > spielzeit75P {
- Outlet_CountDown.progressTintColor = UIColor.systemOrange
- }
- if countdownzaehler > spielzeit5v {
- Outlet_CountDown.progressTintColor = UIColor.systemRed
- }
- print(lives, countdownzaehler, countDown)
- }
Und dann nach dem "countDown?.invalidate()" läuft der Timer weiter und ab da tatsächlich sekündlich.
Was mache ich falsch und habe ich nicht verstanden?