Slider
滑动条是一个收缩型视图。
使用 Slider
视图时,默认的值范围是 0.0 到 1.0 。您将 Slider
绑定到一个状态变量上,通常是一个数字类型,比如 Int
。但它不一定是数字类型。它可以是任何符合 Stridable
协议的类型。(Stride的意思是 "在一个方向上走几步,通常是长步")。符合 Stridable 的类型(例如 Int)意味着它具有连续的值,并且可以逐步遍历和测量。
其基本写法如下:
@State private var sliderValue = 0.5
// 双向绑定状态属性
Slider(value: $sliderValue)
// 改变滑动条的颜色
Slider(value: $sliderValue).accentColor(.orange)
@State var sliderValue: Double = 80.0
// 第1个参数是: value 绑定值,指的是将其绑定到什么 Double 类型的值
// 第2个参数是: in 提供一个范围
// 第3个参数是: step 步长
Slider(value: $sliderValue, in: 1...100, step: 1)
.accentColor(.black)
.background(Capsule().fill(Color.orange))
通过 minimumValueLabel
和 maximumValueLabel
闭包可以设置滑动条两端的视图,可以使用图片、文字等等。
Slider(value: $sliderValue, in: 5...50, step: 5) {
Text("Change the slider value")
} minimumValueLabel: {
Image(systemName: "minus")
} maximumValueLabel: {
Image(systemName: "plus")
}
如果想在设置滑动条时接收回调,可以使用 onEditingChanged
闭包。其中的 isEditing
参数是布尔值,当开始设置滑动条时,该值为 true
,当设置结束时,该值为 false
Slider(value: $sliderValue, in: 5...50, step: 5) {
Text("Change the slider value")
} onEditingChanged: { isEditing in
print(isEditing)
}
修饰符代码示例 | 说明 | |
---|---|---|
设置滑动条颜色 | .tint(Color.orange) | |
设置两端视图的颜色 | .foregroundStyle(purple) | |