Protocol

ToggleStyle

The appearance and behavior of a toggle.

Declaration 宣言

protocol ToggleStyle

Overview 概要

To configure the style for a single Toggle or for all toggle instances in a view hierarchy, use the toggleStyle(_:) modifier. You can specify one of the built-in toggle styles, like switch or button:


Toggle(isOn: $isFlagged) {
    Label("Flag", systemImage: "flag.fill")
}
.toggleStyle(.button)

Alternatively, you can create and apply a custom style.

Custom Styles

To create a custom style, declare a type that conforms to the ToggleStyle protocol and implement the required makeBody(configuration:) method. For example, you can define a checklist toggle style:


struct ChecklistToggleStyle: ToggleStyle {
    func makeBody(configuration: Configuration) -> some View {
        // Return a view that has checklist appearance and behavior.
    }
}

Inside the method, use the configuration parameter, which is an instance of the ToggleStyleConfiguration structure, to get the label and a binding to the toggle state. To see examples of how to use these items to construct a view that has the appearance and behavior of a toggle, see makeBody(configuration:).

To provide easy access to the new style, declare a corresponding static variable in an extension to ToggleStyle:


extension ToggleStyle where Self == ChecklistToggleStyle {
    static var checklist: ChecklistToggleStyle { .init() }
}

You can then use your custom style:


Toggle(activity.name, isOn: $activity.isComplete)
    .toggleStyle(.checklist)

Topics 話題

Getting Built-in Toggle Styles

Creating Custom Toggle Styles

Supporting Types 支援を行う型

Relationships 関係

See Also 参照

Styling a Toggle トグルの体裁を整える