ios - 将按钮连接到计时器并以百分比计算时间

标签 ios swift timer percentage calculation

这可能有点愚蠢,因为我是编码方面的新手,但是:

我刚刚在 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/

相关文章:

c# - 在退出程序之前等待 System.Threading.Timer 回调完成

ios - 当针对 iOS 进行 Xcode 调试时,GStreamer 出现不必要的启动延迟和单元测试崩溃

ios - [错误] : bad characters in classname: (null)

ios - 标签栏显示警报消息

ios - 从 C 到 Swift 的 typedef 结构

c# - 秒表不递增

iphone - iOS 后台位置更新

swift - MVVM Realm : Passing Realm-results across threads?

ios - UIImageView 实时滤镜在相机预览层上拉伸(stretch)

python - 执行周期性 Action