2. 时间计时器
**1. Date().addingTimeInterval(leftSecond) 的问题**
struct WARoomContentWealthContentView: View {
@State private var day: Int = 2
@State private var leftSecond: TimeInterval = 9999
@State private var startDate: Date = Date() // 保存基准时间
let leftTimer = Timer.publish(every: 1, on: .main, in: .common).autoconnect()
var body: some View {
VStack {
Spacer().frame(height: 12) // 预留高度
VStack(spacing: 0) {
Image("icon_room_wealth_dealine")
.resizable()
.frame(width: 60, height: 17)
Spacer().frame(height: 6)
Text("\(day)Day \(startDate.addingTimeInterval(leftSecond).toHourToSecondString())")
.systemBoldFont(size: 14)
.multilineTextAlignment(.center)
.foregroundColor(Color(red: 0.95, green: 0.72, blue: 0))
.background(Image("icon_room_wealth_timer_bg"))
.frame(width: 207, height: 24)
}
}
.onReceive(leftTimer) { _ in
if leftSecond > 0 {
leftSecond -= 1
print("lt - left second: \(leftSecond)")
}
}
}
}**2. toHourToSecondString() 的实现问题**
3. SwiftUI 视图更新的条件
4. 调试建议
5. 完整代码
总结
Last updated