當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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(_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。