2016-08-01 43 views
1

你好我正在开发一个倒数计时器,它必须在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)?

回答

1

我有同样的问题,并在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