SwiftUI #32: ProgressView
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")
}
}
}