Slide

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)

value、in、step

@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

通过 minimumValueLabelmaximumValueLabel 闭包可以设置滑动条两端的视图,可以使用图片、文字等等。

Slider(value: $sliderValue, in: 5...50, step: 5) {
	Text("Change the slider value")
} minimumValueLabel: {
	Image(systemName: "minus")
} maximumValueLabel: {
	Image(systemName: "plus")
}

onEditingChanged

如果想在设置滑动条时接收回调,可以使用 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)