gpt4 book ai didi

swift - 有没有办法为 slider 定义离散步骤?

转载 作者:行者123 更新时间:2023-12-04 07:19:24 25 4
gpt4 key购买 nike

目前我正在这样做。

Slider(value: $object, in: 500...3000, step: 500)
我想做一些类似的事情
step: 100, 500, 600, 1000, 10000

最佳答案

这是一种可能的方法 - 包装系统 Slider进入带有重新映射逻辑的自定义 slider 。
演示(简单变体)使用 Xcode 13/iOS 15 准备和测试
demo

struct TestIrregularSliderView: View {
@State private var current = 500
var body: some View {
VStack {
IrregularSlider(value: $current, in: [100, 500, 600, 1000, 10000])
Text("Value: \(current)")
}
}
}

struct IrregularSlider<T: Comparable>: View {
@Binding var value: T
let values: [T]
private let upperBound: Float
@State private var index: Int

init(value: Binding<T>, in values: [T]) {
self._value = value
self._index = State(initialValue: values.firstIndex(of: value.wrappedValue) ?? 0)

self.values = values
self.upperBound = Float(values.count - 1)
}

var body: some View {
Slider(value: Binding(
get: { Float(index) },
set: { index = Int($0); value = values[Int($0)] }
), in: 0...upperBound, step: 1)
}
}

关于swift - 有没有办法为 slider 定义离散步骤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68598052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com