如何在 swiftui 中设置日期倒计时。我想每秒更新减少时间。但我不明白如何解决这个问题?
struct TimerExample: View {
@State var currentTime = Date.now
@State var inputDate = "2022-12-03 12:20:09"
var body: some View {
Text("The time is: \(convertDateFormat(inputDate: inputDate))")
.padding()
.onAppear(perform: {
Timer.scheduledTimer(withTimeInterval:1.0, repeats: true) {
time in
currentTime = Date.now
}
})
}
func convertDateFormat(inputDate: String) -> String {
let olDateFormatter = DateFormatter()
olDateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss" //"yyyy-MM-dd'T'HH:mm:ss"
let oldDate = olDateFormatter.date(from: inputDate)
let convertDateFormatter = DateFormatter()
convertDateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
return convertDateFormatter.string(from: oldDate!)
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用 aTimelineView和Textwith来实现此目的style: .timer,如下所示:
struct ContentView: View {
var body: some View {
TimerExample(endDate: .now + 500)
}
}
struct TimerExample: View {
let endDate: Date
var body: some View {
TimelineView(.periodic(from: .now, by: 1)) { context in
VStack {
Text("Time remaining:")
Text(endDate, style: .timer)
.font(.title)
Spacer()
}
.padding()
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
960 次 |
| 最近记录: |