SwiftUI #32: ProgressView

발행: (2026년 1월 17일 오전 08:06 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

개요

ProgressView는 진행 표시줄을 생성합니다.
init(_:value:total:) 초기화자는 첫 번째 인수로 레이블을 받습니다. value는 현재 진행 상황을 나타내고 total은 최종 값을 나타냅니다(기본 범위는 0.0 에서 1.0입니다).

기본 사용

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

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

스타일

progressViewStyle(_:)를 사용하여 진행 표시줄의 스타일을 정의할 수 있으며, 이 메서드는 ProgressViewStyle 프로토콜을 채택한 구조체를 받습니다.
내장된 스타일은 automatic, circular, linear입니다.

활동 표시기

ProgressView에 인수를 전달하지 않으면 “activity‑indicator”(활동 표시기)가 표시됩니다:

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

타이머 간격

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은 동적으로 생성된 subtasks를 포함하며, 이 subtasks는 serial 또는 concurrent 방식으로 실행될 수 있습니다. 그룹은 완료된 것으로 간주됩니다…

SC #10: 분리된 작업

Detached Task는 구조화된 동시성 컨텍스트를 벗어나 비동기적으로 작업을 실행하는 분리된 작업입니다. 이를 둘러싼 구조화된 동시성 컨텍스트를 상속하지 않습니다. 이 c를 상속하지 않음...

SC #8: Task 취소

Swift와 SwiftUI에서 Task 취소 > 참고: Swift에서 Task를 취소한다고 해서 실행이 즉시 중단된다는 보장은 없습니다. 각 Task는 계속해서 …