Wheel Picker有一个动画,只有在动画完成时才会固定值。如何在动画期间更改值?问题是,如果用户在动画完成之前单击保存,它将保存以前的值,而不是新的值。
通常,动画完成后,值会从10变为15。我希望在动画期间,值会变为10 11 12 13 14 15。
Picker(selection: $selectedReps, label: Text("Reps")) {
ForEach(minValue+1...maxValue, id: \.self) {
Text("\($0)")
.foregroundColor(Color("lightGreenColor"))
}
}
.onChange(of: selectedReps) { newValue in
selectedReps = newValue
}
字符串
1条答案
按热度按时间c8ib6hqw1#
选择器接受一个绑定,当它决定更新这个值时,没有办法插入或更改。
您可以使用另一种选择器样式来规避此问题,或者使用UIPickerView(参见此处Read position of UIPickerView while scrolling?)。
你也可以定义自己的选择器样式(或者只是一个自定义视图)来模仿SwiftUI中的这种行为,但是你会失去很多本机功能(就像在任何自定义解决方案中一样)。