当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Optional toggleStyle(_:)用法及代码示例


实例方法

toggleStyle(_:)

设置视图层次结构中切换的样式。

声明

func toggleStyle<S>(_ style: S) -> some View where S : ToggleStyle

返回值

为其自身及其子视图使用指定切换样式的视图。

参数

style

要设置的切换样式。使用内置值之一,例如 ToggleStyle/switchToggleStyle/button ,或通过创建符合 ToggleStyle 协议的类型定义的自定义样式。

详述

Toggle 实例上使用此修饰符来设置定义控件外观和行为的样式。例如,您可以选择ToggleStyle/switch 样式:


Toggle("Vibrate on Ring", isOn: $vibrateOnRing)
    .toggleStyle(.switch)

内置样式通常跨平台具有相似的外观,并根据平台的整体样式量身定制:

平台

外貌

iOS、iPadOS

macOS

层次结构中的样式切换

您可以通过将样式修饰符应用于容器视图来为视图层次结构中的所有切换实例设置样式。例如,您可以将 ToggleStyle/button 样式应用于 HStack


HStack {
    Toggle(isOn: $isFlagged) {
        Label("Flag", systemImage: "flag.fill")
    }
    Toggle(isOn: $isMuted) {
        Label("Mute", systemImage: "speaker.slash.fill")
    }
}
.toggleStyle(.button)

isFlaggedtrue 并且 isMutedfalse 时,上面的示例具有以下外观:

平台

外貌

iOS、iPadOS

macOS

自动造型

如果您不设置样式,SwiftUI 假定值为 ToggleStyle/automatic ,对应于 context-specific 默认值。显式指定自动样式以覆盖容器的样式并恢复为默认样式:


HStack {
    Toggle(isOn: $isShuffling) {
        Label("Shuffle", systemImage: "shuffle")
    }
    Toggle(isOn: $isRepeating) {
        Label("Repeat", systemImage: "repeat")
    }


    Divider()


    Toggle("Enhance Sound", isOn: $isEnhanced)
        .toggleStyle(.automatic) // Revert to the default style.
}
.toggleStyle(.button) // Use button style for toggles in the stack.
.labelStyle(.iconOnly) // Omit the title from any labels.

SwiftUI 用作默认样式的样式取决于平台和上下文。在 macOS 中,大多数情况下的默认切换样式是 ToggleStyle/checkbox ,而在 iOS 中,默认切换样式是 ToggleStyle/switch

平台

外貌

iOS、iPadOS

macOS

有关SwiftUI 如何选择默认切换样式的详细信息,请参阅ToggleStyle/automatic 样式。

可用版本

iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional toggleStyle(_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。