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)
    }
}