init(value:step:label:onEditingChanged:)
Creates a stepper configured to increment or decrement a binding to a value using a step value you provide.
Declaration
nonisolated init<V>(value: Binding<V>, step: V.Stride = 1, @ViewBuilder label: () -> Label, onEditingChanged: @escaping (Bool) -> Void = { _ in }) where V : StrideableParameters
- value:
The Binding to a value that you provide.
- step:
The amount to increment or decrement
valueeach time the user clicks or taps the stepper’s increment or decrement buttons. Defaults to1. - label:
A view describing the purpose of this stepper.
- onEditingChanged:
A closure that’s called when editing begins and ends. For example, on iOS, the user may touch and hold the increment or decrement buttons on a stepper which causes the execution of the
onEditingChangedclosure at the start and end of the gesture.
Discussion
Use this initializer to create a stepper that increments or decrements a bound value by a specific amount each time the user clicks or taps the stepper’s increment or decrement buttons.
In the example below, a stepper increments or decrements value by the step value of 5 at each click or tap of the control’s increment or decrement button:
struct StepperView: View {
@State private var value = 1
let step = 5
var body: some View {
Stepper(value: $value,
step: step) {
Text("Current value: \(value), step: \(step)")
}
.padding(10)
}
}[Image]