gpt4 book ai didi

ios - 如何快速创建带有分钟和秒的倒数计时器?

转载 作者:搜寻专家 更新时间:2023-10-31 22:39:17 25 4
gpt4 key购买 nike

我找不到用分和秒进行倒数计时器的教程。有一两个,但它们有点糟糕。

import UIKit

class HomeViewController: UIViewController {
@IBOutlet weak var focusSession: UILabel!
@IBOutlet weak var breakSession: UILabel!

var prodSeconds = String() // This value is set in a different view controller
lazy var intProdSeconds = Int(prodSeconds)
var timer = Timer()
var isTimerRunning = false // Make sure only one timer is running at a time

override func viewDidLoad() {
super.viewDidLoad()

if isTimerRunning == false {
runProdTimer()
}

//focusSession.text = String(prodMinutes) + ":" + String(prodSeconds) // Ignore this for now stack overflow ppl
}

func runProdTimer() {
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: (#selector(HomeViewController.updateProdTimer)), userInfo: nil, repeats: true)
isTimerRunning = true
}

@objc func updateProdTimer() {
if intProdSeconds! < 1 {
timer.invalidate()
focusSession.text = "00:00"
}
else {
intProdSeconds! -= 1
focusSession.text = prodTimeString(time: TimeInterval(prodSeconds)!)
}
}

func prodTimeString(time: TimeInterval) -> String {
let prodMinutes = Int(time) / 60 % 60
let prodSeconds = Int(time) % 60

return String(format: "%02d:%02d", prodMinutes, prodSeconds)
}
}

用户输入他们的时间量并将其存储在 prodSeconds 变量中,然后使用 lazy 将其转换为下面的 Int多变的。

但是,当我运行应用程序时,计时器仍然没有倒计时。这应该只是一个秒计时器,我是从另一个教程中学习的。但所发生的一切只是显示计时器的标签只是以 00:prodSeconds 的格式显示用户输入的数字,并没有真正倒计时。

附言现在不要担心实现开始/停止按钮。在我的例子中,计时器应该在 View 加载时启动。

最佳答案

问题是你倒数从

intProdSeconds! -= 1

并将prodSeconds传递给这个

focusSession.text = prodTimeString(time: TimeInterval(prodSeconds)!)

所以确保只处理 intProdSeconds

关于ios - 如何快速创建带有分钟和秒的倒数计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51179545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com