元のドキュメント: developer.apple.com/documentation/swiftui/togglestyle


プロトコル


ToggleStyle


オンとオフの状態間を切り替えるコントロール。


iOS 13.0+ iPadOS 13.0+ Mac Catalyst 13.0+ macOS 10.15+ tvOS 13.0+

visionOS 1.0+ watchOS 6.0+

@MainActor @preconcurrency
protocol
ToggleStyle





概観


単一の Toggle、またはビュー階層内のすべてのトグルインスタンスのスタイルを構成するには、toggleStyle(_:) 修飾子を使用して下さい。switchbutton などの組み込みトグルスタイルの一つを指定できます。


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

あるいは、カスタムスタイルを作成して適用することもできます。



カスタムスタイル


カスタムスタイルを作成するには、ToggleStyle プロトコルに準拠する型を宣言し、必要な makeBody(configuration:) メソッドを実装します。たとえば、チェックリストのトグルスタイルを定義できます。


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

メソッド内では、ToggleStyleConfiguration 構造体のインスタンスである configuration パラメータを使用して、ラベルとトグル状態への結合を取得します。これらの要素を使用して、トグルのような外観と動作を持つビューを構築する方法の例については、makeBody(configuration:) を参照してください。


新しいスタイルに簡単にアクセスできるようにするには、ToggleStyle の拡張で、対応する静的変数を宣言して下さい。


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

その後、カスタムスタイルを使用できます。


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

このプロトコルに準拠する型は、その型の基本宣言にこの準拠が含まれている場合、プロトコルから @preconcurrency @MainActor isolation (分離) を継承します。


struct MyCustomType: Transition {
    // `@preconcurrency @MainActor` isolation by default
}

main actor (メインアクター) への分離はデフォルトですが、必須ではありません。メインアクターの分離を無効にするには、拡張機能で準拠を宣言してください。


extension MyCustomType: Transition {
    // `nonisolated` by default
}




トピックス


組み込みのトグルスタイルを取得する


static var automatic: DefaultToggleStyle

デフォルトのトグルスタイル。


static var button: ButtonToggleStyle

ラベルがタイトルとなるボタンとして表示されるトグルスタイル。


static var checkbox: CheckboxToggleStyle

チェックボックスとそれに続くラベルを表示するトグルスタイル。


static var `switch`: SwitchToggleStyle

先頭にラベルとそれに続くスイッチを表示するトグルスタイル。



カスタムトグルスタイルの作成


func makeBody(configuration: Self.Configuration) -> Self.Body

トグルの本体を表すビューを作成します。

必須


struct ToggleStyleConfiguration

トグルインスタンスのプロパティ。


typealias Configuration

トグルインスタンスのプロパティ。


associatedtype Body : View

トグルの外観と操作性を表すビュー。

必須




@@@@@@@@@@@@@@
4/23ここまで
@@@@@@@@@@@@@@





関連


以下に準拠


View





以下も見よ


数値入力を取得する


struct Slider

線形の範囲内の値から値を選択するための制御機能。


struct Stepper

増分および減分動作を実行する制御機能。


func toggleStyle<S>(S) -> some View

ビュー階層内のトグルのスタイルを設定します。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ