如何禁用 Slider 中的最小值 0?

How to disable minimum value of 0 in Slider?

我正在开发一个在 SwiftUI 中使用 Slider 的 watchOS 7 应用程序。我的目标是允许选择值 1.02.03.0。当 sliderValues1.0 时,按减号按钮不应将 sliderValue 更改为 0.0。如何禁止选择值 0.0?这是一张更好地说明目标的图片:

查看文件:

import SwiftUI

struct ContentView: View {
    @State private var sliderValue: Double = 1
    
    var body: some View {
        VStack {
            Slider(value: $sliderValue, in: 0...3, step: 1)
            Text("\(sliderValue)")
        }
    }
}

将范围设为1...3。这确实使 UI 仅显示 0、1 或 2 个段。

如果您喜欢 UI 中包含 3 个片段的外观,那么 您可以使用 onChange(of:) 观察值的变化,如果它低于 1:

,则将其设置回 1
struct ContentView: View {
    @State private var sliderValue: Double = 1
    
    var body: some View {
        VStack {
            Slider(value: $sliderValue, in: 0...3, step: 1)
            .onChange(of: sliderValue) { value in
                if value < 1 {
                    sliderValue = 1
                }
            }
            Text("\(sliderValue)")
        }
    }
}