Я пытался создать таймер на SwiftUI, который работал просто отлично:
import SwiftUI
import Combine
struct ContentView: View {
let currentTimePublisher = Timer.TimerPublisher(interval: 1.0, runLoop: .main, mode: .default)
.autoconnect()
@State private var currentTime = Date()
var body: some View {
VStack{
Text("Time is:")
Text("\(currentTime)")
}.onReceive(currentTimePublisher) { (date) in
self.currentTime = date
}
}
}
Однако я пытался поместить VStack во что-либо с возможностью прокрутки, будь то List или ScrollView, я не обновлялся, когда япрокручивал экран. Это работало просто отлично, когда я не прокручивал.
Я также поместил TimerPublisher в основной поток, как вы можете видеть, но это ничего не изменило.
Как я могу сделатьSwiftUI обновить время, пока я прокручиваю / взаимодействую?