自定义选取器中的数字,使其乘数为 5



我使用了这里的代码,并且我想使自定义滑块仅表示5到180范围内的5的乘数。我在XCode 12.5中使用SwiftUI,这里是代码。PS:这不是完整的代码,但我希望代码接近于此代码。

CustomSlider(value: $someValue, range: 5...180)

方法1第一种方法是每次改变someValue的值时将其四舍五入到最接近的5。滑动条只能以固定的增量向上移动,所以它看起来有点跳跃。

代码:

struct ContentView: View {
@State private var someValue: CGFloat = 5
var body: some View {
VStack {
CustomSlider(value: $someValue, range: 5 ... 180)
Text("Value: (someValue)")
}
.onChange(of: someValue) { newValue in
someValue = round(newValue / 5) * 5
}
}
}

方法2

此方法滑块是连续的,但您从sliderValue读取的值四舍五入到最接近的5。我更喜欢这种方法,因为它感觉更流畅。

代码:

struct ContentView: View {
@State private var someValue: CGFloat = 5
private var sliderValue: CGFloat {
round(someValue / 5) * 5
}
var body: some View {
VStack {
CustomSlider(value: $someValue, range: 5 ... 180)
Text("Value: (sliderValue)")
}
}
}

最新更新