【发布时间】:2020-09-13 06:17:02
【问题描述】:
我对 swift 还很陌生,我正在尝试制作一个实时倒数计时器,您可以通过按下按钮来增加时间。我在另一个 StackOverflow 帖子中找到了计时器的原始代码:
@objc func UpdateTime() {
let userCalendar = Calendar.current
// Set Current Date
let date = Date()
let components = userCalendar.dateComponents([.hour, .minute, .month, .year, .day, .second], from: date)
let currentDate = userCalendar.date(from: components)!
// Set Event Date
var eventDateComponents = DateComponents()
eventDateComponents.year = 2020
eventDateComponents.month = 09
eventDateComponents.day = 20
eventDateComponents.hour = 00
eventDateComponents.minute = 00
eventDateComponents.second = 00
eventDateComponents.timeZone = TimeZone(abbreviation: "GMT")
// Convert eventDateComponents to the user's calendar
let eventDate = userCalendar.date(from: eventDateComponents)!
// Change the seconds to days, hours, minutes and seconds
let timeLeft = userCalendar.dateComponents([.day, .hour, .minute, .second], from: currentDate, to: eventDate)
// Display Countdown
daysCount.text = "\(timeLeft.day!)d \(timeLeft.hour!)h \(timeLeft.minute!)m \(timeLeft.second!)s"
// Show diffrent text when the event has passed
endEvent(currentdate: currentDate, eventdate: eventDate)
}
func endEvent(currentdate: Date, eventdate: Date) {
if currentdate >= eventdate {
daysCount.text = "0d 0h 0m 0s"
// Stop Timer
timer.invalidate()
}
}
我有一个按钮的 IBAction,理想情况下你会按下它,它会为计时器增加 30 天。我试图做一些我在另一篇文章中发现的类似的事情,但无法正常工作。
let date = startDate.addingTimeInterval(5 * 60)
我非常感谢这里的任何指导。谢谢。
【问题讨论】:
-
从概念上讲,您有两个时间点。目标时间(您正在倒计时)和当前时间(为了论证)。因此,基本上,您需要更新“目标”,然后让您“倒计时”例程将其用作正在进行的计算的基础
标签: swift