SwiftUI Toggle
开关切换控件
iOS 13.0+iPadOS 13.0+macOS 10.15+Mac Catalyst 13.0+tvOS 13.0+watchOS 6.0+
SwiftUI 中的切换是一个可以在开启和关闭状态之间切换的控件,它相当于 UIKit 中的 UISwitch。在本教程中,我们将学习如何创建切换并在各种示例中使用它。我们将根据切换状态更新视图(显示/隐藏图像),创建自定义切换标签并根据其状态调整切换的边框颜色。
@State private var vibrateOnRing = false
var body: some View {
Toggle(isOn: $vibrateOnRing) {
Text("Vibrate on Ring")
}
}
对于纯文本标签的常见情况,您可以使用将标题字符串(或本地化字符串键)作为其第一个参数的便捷初始化程序,而不是尾闭包:
@State private var vibrateOnRing = true
var body: some View {
Toggle("Vibrate on Ring", isOn: $vibrateOnRing)
}
样式定制
Toggles 默认根据平台和上下文而变化产生默认样式。
您可以通过使用 toggleStyle(_:)
修饰符应用样式来自定义切换的外观和交互。您可以将内置样式,如 switch
,应用于切换或包含切换的视图层次结构:
VStack {
Toggle("Vibrate on Ring", isOn: $vibrateOnRing)
Toggle("Vibrate on Silent", isOn: $vibrateOnSilent)
}
.toggleStyle(.switch)
您还可以通过创建符合 ToggleStyle
协议的类型来定义自定义样式。