init(_:value:in:step:onEditingChanged:)
Creates a stepper instance that increments and decrements a binding to a value, by a step size and within a closed range that you provide.
Declaration
nonisolated init<S, V>(_ title: S, value: Binding<V>, in bounds: ClosedRange<V>, step: V.Stride = 1, onEditingChanged: @escaping (Bool) -> Void = { _ in }) where S : StringProtocol, V : StrideableParameters
- title:
A string describing the purpose of the stepper.
- value:
A Binding to a value that your provide.
- bounds:
A closed range that describes the upper and lower bounds permitted by the stepper.
- step:
The amount to increment or decrement
valueeach time the user clicks or taps the stepper’s increment or decrement button, respectively. Defaults to1. - 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
Stepperwhich causes the execution of theonEditingChangedclosure at the start and end of the gesture.
Discussion
Use Stepper(_:value:in:step:onEditingChanged:) to create a stepper that increments or decrements a value within a specific range of values by a specific step size. In the example below, a stepper increments or decrements a binding to value over a range of 1...50 by 5 each time the user clicks or taps the stepper’s increment or decrement buttons:
struct StepperView: View {
@State private var value = 0
let step = 5
let range = 1...50
var body: some View {
Stepper("Current: \(value) in \(range.description) stepping by \(step)",
value: $value,
in: range,
step: step)
.padding(10)
}
}[Image]