作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这可能有点愚蠢,因为我是编码方面的新手,但是:
我刚刚在 swift 中编写了一个计时器,它工作正常,但我的小项目的下一步是制作三个连接到计时器的按钮,计算已经过去的总时间的百分比。例如,对于控球权计算器,按钮“Home”表示主队有球,“Away”表示客队有球,最后一个按钮“not in play”表示球出局播放,这将暂停占有率的计算。有没有人可以帮助我将按钮连接到计时器,并帮助我编写计算百分比的代码?
我创建了两个标签来显示百分比。我希望有人能帮助这个新手:) 谢谢!
计时器:
@IBOutlet weak var 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
最佳答案
好的,既然你添加了更多关于你想如何做的信息,我将尝试解释一些事情。首先,我不会使用 Timer,因为 swift 中的 Timers 用于倒计时,而您并不需要它。我会做的是首先尝试制作一个工作秒表,我建议您阅读 this关于如何做到这一点的教程。
如果你有一个工作的 StopWatch 类,你需要这个类的 3 个实例:总时间;家有时间;而客场拥有时间。如果你有这些,就很容易得到它们的百分比。家庭百分比将是这样的:
homeStopWatch.elapsedTime/totalStopWatch.elapsedTime * 100
away就是用100减去之前计算出来的值,希望能稍微澄清一下大家的疑惑,有什么误解请追问。
问候 - 豪尔赫
关于ios - 将按钮连接到计时器并以百分比计算时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41643845/
我是一名优秀的程序员,十分优秀!