Timer 设置一个重复的24:00:00倒计时计时器,该计时器在00:00:00停止并重置

Timer 设置一个重复的24:00:00倒计时计时器,该计时器在00:00:00停止并重置,timer,swiftui,Timer,Swiftui,现在我得到了一个倒计时计时器,它的形式是“24:00:00”。问题是,计时器在“00:00:00”后继续运行,并开始倒计时负数。我想要的是计时器在0停止,并在24小时重复。我的问题是时间是Data.type Date()。因此,我不知道如何用if语句解释,如果倒计时计时器==0,textlabel应该更改。我希望你能理解这个问题 struct ContentView: View { // Timer func countDownString(from referenceDate: Da

现在我得到了一个倒计时计时器,它的形式是“24:00:00”。问题是,计时器在“00:00:00”后继续运行,并开始倒计时负数。我想要的是计时器在0停止,并在24小时重复。我的问题是时间是Data.type Date()。因此,我不知道如何用if语句解释,如果倒计时计时器==0,textlabel应该更改。我希望你能理解这个问题

struct ContentView: View {

  // Timer

 func countDownString(from referenceDate: Date, until nowDate: Date) -> String
 {
     let components = calender.dateComponents([.hour, .minute, .second], from: nowDate, to: referenceDate)

     return String(format: "%02dh:%02dm:%02ds",
                   components.hour ?? 00,
                   components.minute ?? 00,
                   components.second ?? 00)


 }


@State var nowDate: Date = Date()
let referenceDate: Date = Date().addingTimeInterval(20)
let calender = Calendar(identifier: .gregorian)
let formatter = DateFormatter()


var timer: Timer {
   Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) {_ in
       self.nowDate = Date()

   }


 }


 var body: some View {

 Text(countDownString(from: referenceDate, until: nowDate)).font(.largeTitle).onAppear(perform: {
                    _ = self.timer

                })
}
}

请出示你的密码好吗?当然可以。我将把它添加到我的问题中