SwiftUI #32: ProgressView

발행: (2026년 1월 17일 오전 08:06 GMT+9)
2 min read
원문: 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

관련 글

더 보기 »

SwiftUI #25: 상태 (@State)

선언형 패러다임은 단순히 뷰를 어떻게 구성하는가에 관한 것이 아니라, 애플리케이션의 상태가 변할 때마다 뷰가 업데이트되어야 한다는 것이다.

SwiftUI #21: 그룹

Group이란? Group은 여러 뷰를 함께 묶어 Stack이 가지고 있는 최대 10개의 서브 뷰 제한을 피하고 여러 뷰에 스타일을 적용할 수 있게 합니다.

SwiftUI #20: 우선순위

소개 SwiftUI에서 Stack은 뷰 사이의 공간을 균등하게 나눕니다. 뷰가 들어가지 않으면 Image에 고정 크기를 할당하고 축소합니다.