Ios 如何使用NSDateFormatter创建计时器(chrono)?
这是一个有分和秒的常规计时器(chrono)。 它工作得很好,但是有没有一种方法可以使用NSDateFormatter获得相同的结果Ios 如何使用NSDateFormatter创建计时器(chrono)?,ios,swift,nsdateformatter,Ios,Swift,Nsdateformatter,这是一个有分和秒的常规计时器(chrono)。 它工作得很好,但是有没有一种方法可以使用NSDateFormatter获得相同的结果 var min = 0 var sec = 0 func stringFromTimeInterval(interval: NSTimeInterval) -> String { let interval = Int(interval) let seconds = interval % 60 let minutes = (inter
var min = 0
var sec = 0
func stringFromTimeInterval(interval: NSTimeInterval) -> String {
let interval = Int(interval)
let seconds = interval % 60
let minutes = (interval / 60)
return String(format: "%2d:%02d",minutes, seconds)
}
func updateTimer(){
sec++
self.timeElapsed.text = self.stringFromTimeInterval(Double(sec))
}
以下是我的尝试:
var sec = 0
func theTime(interval:NSTimeInterval) -> String {
var dateFormatter = NSDateFormatter()
var date = NSDate(timeIntervalSince1970: NSTimeInterval())
dateFormatter.dateFormat = "mm:ss"
return dateFormatter.stringFromDate(date)
}
func updateTheTime(){
sec++
self.newTimer.text = self.theTime(Double(sec))
}
- 我做错了什么,因为总是00:00
- 我怎样才能让它工作李>
var dateFormatter = NSDateFormatter()
var date = NSDate(timeIntervalSince1970: interval)
dateFormatter.dateFormat = "mm-ss"
dateFormatter.stringFromDate(date)
您可以使用
nsdatecomponentsformter
class ViewController: UIViewController {
// 1
var startDate: NSDate!
// 2
@IBOutlet weak var timerLabel: UILabel!
// 3
func tick() {
// 4
let elapsed = NSDate().timeIntervalSinceDate(startDate)
// 5
let formattedTime = NSDateComponentsFormatter().stringFromTimeInterval(elapsed)
// 6
timerLabel.text = formattedTime
}
// 7
@IBAction func startButtonPressed() {
// 8
startDate = NSDate()
// 9
NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "tick", userInfo: nil, repeats: true)
}
}
以下是Swift代码中发生的事情:
startDate
属性将在startButtonPressed()中初始化
timerLabel
将显示输出。它是一个标准的ui标签
tick()
将从NSTimer调用已用时间
计算自开始日期
以来已用的时间NSDate()
是获取当前日期的简便方法nsdatecomponentsformter
将输出经过时间正确修剪的字符串
formattedTime
将显示在屏幕上startButtonPressed()
在用户点击开始按钮时被调用startDate
属性设置为当前日期NSTimer
将每隔1秒调用tick()
- 四秒钟过去了
- 一分四秒过去了
考虑改进您的答案。为了使计时器工作,我在函数体中添加了变量sec作为NSTimeInterval的参数,如下所示:var date=NSDate(timeIntervalSince1970:NSTimeInterval(sec))