我想在2018年6月2日制作一个倒数计时器。我该怎么办呢。当用户打开应用程序时,它应该从中断处继续。
我解决了这段代码。其他人正在寻找相同的代码。我看到有人对Stack Overflow有所帮助,我完成了它。
class ViewController: UIViewController {
@IBOutlet weak var ayLabel: UILabel!
@IBOutlet weak var gunLabel: UILabel!
@IBOutlet weak var saatLabel: UILabel!
@IBOutlet weak var dakikaLabel: UILabel!
@IBOutlet weak var saniyeLabel: UILabel!
@IBOutlet weak var secimGunu: UILabel!
let formatter = DateFormatter()
let userCleander = Calendar.current;
let requestedComponent : Set<Calendar.Component> = [
Calendar.Component.month,
Calendar.Component.day,
Calendar.Component.hour,
Calendar.Component.minute,
Calendar.Component.second
]
override func viewDidLoad() {
super.viewDidLoad()
let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timePrinter), userInfo: nil, repeats: true)
timer.fire()
}
func timeCalculator(dateFormat: String, endTime: String, startTime: Date = Date()) -> DateComponents {
formatter.dateFormat = dateFormat
let _startTime = startTime
let _endTime = formatter.date(from: endTime)
let timeDifference = userCleander.dateComponents(requestedComponent, from: _startTime, to: _endTime!)
return timeDifference
}
@objc func timePrinter() -> Void {
let time = timeCalculator(dateFormat: "dd/MM/yyyy HH:mm:ss a", endTime: "02/06/2018 00:00:00 a")
ayLabel.text = "\(time.month!)"
gunLabel.text = "\(time.day!)"
saatLabel.text = "\(time.hour!)"
dakikaLabel.text = "\(time.minute!)"
saniyeLabel.text = "\(time.second!)"
}
答案 0 :(得分:-2)
https://www.timeanddate.com/countdown/generic?iso=20180602T02&p0=136&font=cursive
如果你真的想要一个应用程序,无论出于何种原因,最简单的选择是让一个视图应用程序在Web视图中打开上面的URL。
如果您绝对需要编写自己的原生应用。然后,您需要在Xcode中创建一个视图应用程序,并在其视图中使用标签,并在其ViewController中每隔一秒(或您想要的任何时间段)触发计时器。计时器触发的事件会减少标签(或者您想要显示剩余时间)。应用程序还需要处理恢复(可能通过注册到UIApplicationDidBecomeActiveNotification
)以确保从后台恢复时剩余时间得到更新。