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 协议的类型来定义自定义样式。