ios 如何在动画过程中更改值?Wheel Picker SwiftUI

yptwkmov  于 11个月前  发布在  iOS
关注(0)|答案(1)|浏览(104)

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
                                        }

字符串

c8ib6hqw

c8ib6hqw1#

选择器接受一个绑定,当它决定更新这个值时,没有办法插入或更改。
您可以使用另一种选择器样式来规避此问题,或者使用UIPickerView(参见此处Read position of UIPickerView while scrolling?)。
你也可以定义自己的选择器样式(或者只是一个自定义视图)来模仿SwiftUI中的这种行为,但是你会失去很多本机功能(就像在任何自定义解决方案中一样)。

相关问题