当前位置:  开发笔记 > IOS > 正文

秒表应用程序计数器走得太快

如何解决《秒表应用程序计数器走得太快》经验,为你挑选了1个好方法。

我只是在学习iOS和编程,我正在制作一个非常基本的iOS秒表应用程序.我让秒表正常工作,当我按下启动不止一次时,计时器开始变得更快,这样它就不再是第二长(这里是gif).此外,我的格式似乎是关闭秒部分,如果你有任何建议,将不胜感激.这是我的代码:

import UIKit

class ViewController: UIViewController {

@IBOutlet weak var minuteLabel: UILabel!

@IBOutlet weak var secondLabel: UILabel!

var timer = NSTimer()

var second = 0

var minute = 0

func updateTime() {
    do{
        if second != 59
        {
            second++

            secondLabel.text = ".\(second)"
        }
        else
        {
            second = 0

            minute++

            secondLabel.text = "." + String(format:"$%.2f", second)
            if minute < 10
            {
            minuteLabel.text = "0\(minute)"
            }
            else
            {
                minuteLabel.text = String(format:"$%.2f", minute)
            }
        }
    }

}



@IBAction func resetButton(sender: AnyObject) {
    timer.invalidate()
    second = 0
    minute = 0
    secondLabel.text = ".00"
    minuteLabel.text = "00"

}

@IBAction func stopButton(sender: AnyObject) {
    timer.invalidate()
}

@IBAction func startButton(sender: AnyObject) {

        timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("updateTime"), userInfo: nil, repeats: true)

}

谢谢您的帮助!



1> tktsubota..:

调用timer时不会失效startButton,因此多次点击"开始"会创建调用相同函数的重复计时器,updateTime.更改startButton看起来像这样:

@IBAction func startButton(sender: AnyObject) {

    if !timer.valid
    {
        timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("updateTime"), userInfo: nil, repeats: true)
    }

}

对于关于格式化的第二个问题,您需要设置一个条件来检查秒数是否小于10,类似于您对分钟所做的操作.你会在秒前面加一个0.在updateTime:

if second < 10
{
     second++

     secondLabel.text = ".0\(second)"
}
else if second <= 59
{
     second++

     secondLabel.text = ".\(second)"
}
else
{
     ...
}

有关更多信息,请参阅NSTimer文档.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有