如何使用Swift做CountDown计时器
问题描述:
你好我正在开发一个倒数计时器,它必须在8小时后停止。那就是:如何使用Swift做CountDown计时器
import UIKit
class ViewController: UIViewController {
var timer = NSTimer()
var counter = 0
@IBOutlet weak var Label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func Start(sender: AnyObject) {
counter = 28800
Label.text = String(counter)
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("updateTimer"), userInfo: nil, repeats: true)
}
func updateTimer() {
counter -= 1
Label.text = String(counter)
}
@IBAction func Stop(sender: AnyObject) {
timer.invalidate()
}
}
但有28800秒(这是8小时)我想显示08:00:00,07:59:59,七点59分58秒,等等...代替目前它正在显示28800,2899,28798等。你有一个想法如何格式化为一个真正的时钟(08:00:00)?
答
我有同样的问题,并在Xcode/SWIFT几乎是一个小白 - 但回顾几个来源后,这里就是我放在一起为我的作品:
替换您:
func updateTimer() {
counter -= 1
Label.text = String(counter)
}
有了这个:
func updateTimer() {
counter -= 1
let hours = Int(counter)/3600
let minutes = Int(counter)/60 % 60
let seconds = Int(counter) % 60
Label.text = String(format: "%02i:%02i:%02i",hours,minutes,seconds)
}
(Xcode的8.1警告有关使用 “让” 或“VA的R”为小时/分/秒,但它仍然有效)
结果是这样的:
00:00:00