SwiftUI #32:ProgressView

发布: (2026年1月17日 GMT+8 07:06)
1 分钟阅读
原文: Dev.to

Source: Dev.to

Overview

ProgressView 创建一个进度条。
初始化器 init(_:value:total:) 将标签作为第一个参数。value 表示当前进度,total 表示最终值(默认范围是 0.0 到 1.0)。

Uso básico

struct ContentView: View {
    @State private var progress = 0.1

    var body: some View {
        VStack {
            ProgressView(value: progress)
            Button("More") { progress += 0.05 }
        }
    }
}

Estilos

你可以使用 progressViewStyle(_:) 来定义进度条的样式,它接受一个符合 ProgressViewStyle 协议的结构体。
内置的样式有 automaticcircularlinear

Indicador de actividad

如果不向 ProgressView 传递参数,它会显示一个“activity‑indicator”:

struct ContentView: View {
    var body: some View {
        ProgressView()
    }
}

Intervalo de temporizador

init(timerInterval:countsDown:) 创建一个 ProgressView,它接受一个日期范围并自动启动计时器。

struct ContentView: View {
    let workoutDateRange = Date()...Date().addingTimeInterval(5 * 60)

    var body: some View {
        ProgressView(timerInterval: workoutDateRange) {
            Text("Workout")
        }
    }
}
Back to Blog

相关文章

阅读更多 »

SC #11:任务组

TaskGroup 一个 TaskGroup 包含动态创建的子任务,可以串行或并发执行。只有当组完成时才被视为结束。

SC #10:解耦任务

一个脱耦的 Detached Task 以异步方式执行操作,脱离了包裹它的结构化并发上下文。不要继承这个 c...

SC #8:取消 Task

Swift 和 SwiftUI 中的 Task 取消 > 注意:在 Swift 中,取消 Task 并不保证执行会立即停止。每个 Task 必须检查更多…