我正在尝试使用异步方法创建进度条更新。
我使用的代码是:
struct ContentView: View {
@ObservedObject var demo:teste
var body: some View {
VStack{
ProgressView("Loading....", value: demo.i, total: demo.x)
Button("Start Loading") {
demo.demo()
}
}
}
}
class teste:ObservableObject{
@Published var i:Float = 0
@Published var x:Float = 100
func demo(){
DispatchQueue.global(qos: .default).async {
DispatchQueue.main.sync {
for _ in 0 ... 20{
self.i += Float(5.0)
sleep(5)
}
}
}
}
}
我的目标是根据(i
)的值填充porgressView。类(i
)中的值被更新,但视图没有更新。
那么,如何使用i的值更新进度视图呢?
发布于 2021-04-15 20:38:46
试试这个
func demo(){
DispatchQueue.global(qos: .background).async {
for _ in 0 ... 20{
sleep(5) // wait in background
DispatchQueue.main.sync {
self.i += Float(5.0) // update in main
}
}
}
}
https://stackoverflow.com/questions/67108541
复制相似问题