protocol ToggleStyle
Return Value 戻り値
A view that uses the specified toggle style for itself and its child views.
Availability 有効性
Technology
func toggleStyle<S>(_ style: S) -> some View
where S : ToggleStyle
A view that uses the specified toggle style for itself and its child views.
style
The toggle style to set. Use one of the built-in values, like switch
or button
, or a custom style that you define by creating a type that conforms to the Toggle
protocol.
Use this modifier on a Toggle
instance to set a style that defines the control’s appearance and behavior. For example, you can choose the switch
style:
Toggle("Vibrate on Ring", isOn: $vibrateOnRing)
.toggleStyle(.switch)
Built-in styles typically have a similar appearance across platforms, tailored to the platform’s overall style:
Platform |
Appearance |
---|---|
iOS, iPadOS |
|
macOS |
You can set a style for all toggle instances within a view hierarchy by applying the style modifier to a container view. For example, you can apply the button
style to an HStack
:
HStack {
Toggle(isOn: $isFlagged) {
Label("Flag", systemImage: "flag.fill")
}
Toggle(isOn: $isMuted) {
Label("Mute", systemImage: "speaker.slash.fill")
}
}
.toggleStyle(.button)
The example above has the following appearance when is
is true
and is
is false
:
Platform |
Appearance |
---|---|
iOS, iPadOS |
|
macOS |
If you don’t set a style, SwiftUI assumes a value of automatic
, which corresponds to a context-specific default. Specify the automatic style explicitly to override a container’s style and revert to the default:
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.
The style that SwiftUI uses as the default depends on both the platform and the context. In macOS, the default in most contexts is a checkbox
, while in iOS, the default toggle style is a switch
:
Platform |
Appearance |
---|---|
iOS, iPadOS |
|
macOS |
Note 注意
Like toggle style does for toggles, the label
modifier sets the style for Label
instances in the hierarchy. The example above demostrates the compact icon
style, which is useful for button toggles in space-constrained contexts. Always include a descriptive title for better accessibility.
For more information about how SwiftUI chooses a default toggle style, see the automatic
style.
protocol ToggleStyle