SwiftUI #32: ProgressView
Source: Dev.to
Overview
ProgressView crea una barra de progreso.
El inicializador init(_:value:total:) recibe una etiqueta como primer argumento. value indica el progreso actual y total indica el valor final (por defecto el rango es de 0.0 a 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
Puedes definir el estilo de la barra de progreso con progressViewStyle(_:), que recibe una estructura que conforma el protocolo ProgressViewStyle.
Los estilos incorporados son automatic, circular y linear.
Indicador de actividad
Si no se pasan argumentos al ProgressView, se muestra un “activity‑indicator”:
struct ContentView: View {
var body: some View {
ProgressView()
}
}
Intervalo de temporizador
init(timerInterval:countsDown:) crea un ProgressView que recibe un rango de fechas y activa un temporizador automáticamente.
struct ContentView: View {
let workoutDateRange = Date()...Date().addingTimeInterval(5 * 60)
var body: some View {
ProgressView(timerInterval: workoutDateRange) {
Text("Workout")
}
}
}