在 SwiftUI 中,可以使用 ProgressView 来显示任务的进度。下面是一个简单的示例:
struct ContentView: View {
@State var progress: Double = 0.0
var body: some View {
VStack {
ProgressView("任务进度", value: progress, total: 100)
.padding(.all, 20)
Button(action: startTask) {
Text("开始任务")
}
}
}
func startTask() {
// 模拟任务进度更新
for i in 0...100 {
DispatchQueue.main.asyncAfter(deadline: .now() + Double(i) * 0.03) {
self.progress = Double(i)
}
}
}
}
在代码中,我们首先创建了一个名为 progress
的 @State
属性来表示任务的进度。在 body
中,我们创建了一个垂直的 VStack
,其中包含一个 ProgressView
和一个 Button
。在 ProgressView
中,我们使用了 value
和 total
参数来设置当前进度和总进度,同时还显示一个标题。
在 startTask
方法中,我们使用了 DispatchQueue.main.asyncAfter
来模拟任务的进度更新。在循环中,我们依次更新进度,每次更新都延迟一定的时间,以模拟真实的任务执行过程。
运行代码后,点击“开始任务”按钮即可看到进度条在不断更新,直到任务完成。