如何禁用 Slider 中的最小值 0?
How to disable minimum value of 0 in Slider?
我正在开发一个在 SwiftUI 中使用 Slider 的 watchOS 7 应用程序。我的目标是允许选择值 1.0
、2.0
和 3.0
。当 sliderValues
为 1.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)")
}
}
}
我正在开发一个在 SwiftUI 中使用 Slider 的 watchOS 7 应用程序。我的目标是允许选择值 1.0
、2.0
和 3.0
。当 sliderValues
为 1.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)")
}
}
}