Hi everyone,
I wanted to share an additional finding that might help narrow down the issue.
In my case, the unexpected behavior of onEditingChanged appears only when the Slider uses the step parameter.
Here is a minimal reproducible example:
@State private var speed = 50.0
@State private var isEditing = false {
didSet {
print("isEditing:\(isEditing)")
}
}
var body: some View {
VStack {
Slider(
value: $speed,
in: 0...100,
step: 10,
onEditingChanged: { editing in
isEditing = editing
}
)
Text("\(speed)")
.foregroundColor(isEditing ? .red : .blue)
}
}
✔️ Without the step parameter (works as expected):
Start dragging:
isEditing: true
End dragging:
isEditing: false
❌ With the step parameter:
Start dragging:
(no logs at all)
End dragging:
isEditing:false
isEditing:true
So the final editing state becomes true again when the drag gesture ends — matching what others here have observed.
Additional details:
- Issue reproduces on iOS 26.1
- Worked correctly on iOS 26.0.1
- Tested with Xcode Version 26.1.1 (17B100)
It seems the presence of a step value triggers an extra internal state change at the end of the interaction, causing onEditingChanged to fire incorrectly.
Hopefully this helps Apple engineers pinpoint the regression more easily.
Best regards,
Luka