在 Swift 中创建倒数计时器
Creating a Countdown Timer in Swift
我写了这段倒计时到特定日期的代码。
如何才能让倒计时的每个元素都显示在单独的标签中。
所以我会有一个显示天数的标签,一个显示小时数的标签,一个显示分钟数的标签和一个显示秒数的标签。
代码:
class ViewController: UIViewController {
@IBOutlet weak var dateLabelOutlet: UILabel!
let currentDate = Date()
let dateFormatter = DateFormatter()
let userCalendar = Calendar.current
let requestedComponent: Set<Calendar.Component> = [.day,.hour,.minute,.second]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(printTime), userInfo: nil, repeats: true)
timer.fire()
}
func printTime()
{
dateFormatter.dateFormat = "dd/MM/yy hh:mm:ss"
let startTime = Date()
let endTime = dateFormatter.date(from: "25/12/16 00:00:00")
let timeDifference = userCalendar.dateComponents(requestedComponent, from: startTime, to: endTime!)
dateLabelOutlet.text = "\(timeDifference.day!) Days \(timeDifference.hour!) Hours \(timeDifference.minute!) Minutes \(timeDifference.second!) Seconds"
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
您的代码已经计算了 DateComponents
中的差异,然后构建了一个结合了日、时、分和秒差异的字符串。
只需更改此行:
dateLabelOutlet.text = "\(timeDifference.day!) Days \(timeDifference.hour!) Hours \(timeDifference.minute!) Minutes \(timeDifference.second!) Seconds"
您需要创建 4 个标签并将 timeDifference.day
放在一个标签中,timeDifference.hour
在另一个标签中,timeDifference.minute
在第三个标签中,timeDifference.second
在第四个标签中.
如果您编写了该代码,我认为那将是显而易见的 - 或者您 copy/pasted 是其他人的代码?
我写了这段倒计时到特定日期的代码。
如何才能让倒计时的每个元素都显示在单独的标签中。
所以我会有一个显示天数的标签,一个显示小时数的标签,一个显示分钟数的标签和一个显示秒数的标签。
代码:
class ViewController: UIViewController {
@IBOutlet weak var dateLabelOutlet: UILabel!
let currentDate = Date()
let dateFormatter = DateFormatter()
let userCalendar = Calendar.current
let requestedComponent: Set<Calendar.Component> = [.day,.hour,.minute,.second]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(printTime), userInfo: nil, repeats: true)
timer.fire()
}
func printTime()
{
dateFormatter.dateFormat = "dd/MM/yy hh:mm:ss"
let startTime = Date()
let endTime = dateFormatter.date(from: "25/12/16 00:00:00")
let timeDifference = userCalendar.dateComponents(requestedComponent, from: startTime, to: endTime!)
dateLabelOutlet.text = "\(timeDifference.day!) Days \(timeDifference.hour!) Hours \(timeDifference.minute!) Minutes \(timeDifference.second!) Seconds"
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
您的代码已经计算了 DateComponents
中的差异,然后构建了一个结合了日、时、分和秒差异的字符串。
只需更改此行:
dateLabelOutlet.text = "\(timeDifference.day!) Days \(timeDifference.hour!) Hours \(timeDifference.minute!) Minutes \(timeDifference.second!) Seconds"
您需要创建 4 个标签并将 timeDifference.day
放在一个标签中,timeDifference.hour
在另一个标签中,timeDifference.minute
在第三个标签中,timeDifference.second
在第四个标签中.
如果您编写了该代码,我认为那将是显而易见的 - 或者您 copy/pasted 是其他人的代码?