0

这可能是一个愚蠢的问题,因为我是编码的新手,但是:

我刚刚在 swift 中编写了一个运行良好的计时器,但我的小项目的下一步是制作三个连接到计时器的按钮,用于计算已流逝的总时间的百分比。例如一个控球计算器,当主队有球时有“Home”按钮,当客队有球时有“Away”按钮,当球出局时有一个“not in play”按钮play,这将暂停控球权的计算。有没有人可以帮助我将按钮连接到计时器,并帮助我编写代码来计算百分比?

我创建了两个显示百分比的标签。我希望有人可以帮助这个新手:) 谢谢!

计时器:

@IBOutlet 弱变量 lbl:UILabel!

var timer = Timer()
var minutes: Int = 0
var seconds: Int = 0
var timerIsOn = false

var stopwatchString: String = ""

@IBAction func start(_ sender: UIButton)
{
    if timerIsOn == false {
    timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.action), userInfo: nil, repeats: true)
        }
    timerIsOn = true
}

@IBAction func reset(_ sender: UIButton)
{
timer.invalidate()
    seconds = 0
    lbl.text = ("00:00")
    timerIsOn = false
}

func action()
{
    seconds += 1
    lbl.text = String(seconds)
    if seconds == 60 {

        minutes += 1
        seconds = 0

    }

    let secondsString = seconds > 9 ? "\(seconds)" : "0\(seconds)"
    let minutesString = minutes > 9 ? "\(minutes)" : "0\(minutes)"

    stopwatchString = "\(minutesString):\(secondsString)"
    lbl.text = stopwatchString
4

1 回答 1

1

好的,因为您添加了有关您希望如何操作的更多信息,我将尝试解释一些事情。首先,我不会使用 Timer,因为 swift 中的 Timers 用于倒计时,而您不需要。我要做的是首先尝试制作一个可以工作的秒表,我建议您阅读教程以了解如何做到这一点。

如果你有一个可以工作的 StopWatch 类,你需要这个类的 3 个实例:总时间;家拥有时间;而客场拥有时间。如果你有这些,就很容易得到它们的百分比。家庭百分比将是这样的:

homeStopWatch.elapsedTime/totalStopWatch.elapsedTime * 100 

客场是从100减去前一个计算值。希望我能澄清你的疑惑,并请询问是否有误解。

问候-豪尔赫

于 2017-01-13T23:51:04.543 回答