ProgressView
显示任务完成进度的视图。
struct ProgressView<Label> where Label : View
类型:Value Indicators
使用方法
使用进度视图可以显示任务正在逐步完成。进度视图可以显示确定的(完成百分比)和不确定的(正在进行或不正在进行)类型的进度。
通过初始化一个ProgressView来创建确定的进度视图,该View绑定了一个表示进度的数字值和一个表示任务完成的总值。默认情况下,进度为0.0,总计为1.0。
下面的示例使用状态属性progress来显示确定的ProgressView中的进度。进度视图使用其默认的总计1.0,并且由于进度以初始值0.5开始,因此进度视图开始为半完成。进度视图下方的“更多”按钮允许用户以5%的增量递增进度:
@State private var progress = 0.5
VStack {
ProgressView(value: progress)
Button("More", action: { progress += 0.05 })
}
要创建不确定的进度视图,请使用不带有进度值的初始化程序:
var body: some View {
VStack {
ProgressView()
}
}
您可以通过创建符合ProgressViewStyle协议的样式来自定义进度视图的外观和交互。要为视图中的所有进度视图实例设置特定样式,请使用progressViewStyle(_ :)修饰符。在以下示例中,自定义样式将深蓝色阴影添加到封闭的VStack中的所有进度视图中:
struct ShadowedProgressViews: View {
var body: some View {
VStack {
ProgressView(value: 0.25)
ProgressView(value: 0.75)
}
.progressViewStyle(DarkBlueShadowProgressViewStyle())
}
}
struct DarkBlueShadowProgressViewStyle: ProgressViewStyle {
func makeBody(configuration: Configuration) -> some View {
ProgressView(configuration)
.shadow(color: Color(red: 0, green: 0, blue: 0.6),
radius: 4.0, x: 1.0, y: 2.0)
}
}