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


構造体


Toggle


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


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

visionOS 1.0+ watchOS 6.0+

struct Toggle<Label> where Label : View





以下で言及


SwiftUI でメニューバーをビルドしカスタマイズする

カスタムビューを宣言する

シンプルなビューをレイアウトする

適応性のあるコントロールを使用して SwiftUI メニューを形成する



概観


isOn 結合とラベルを提供することで、トグルを作成して下さい。isOn を、トグルがオンかオフかを決定するブール型プロパティに結合します。ラベルには、トグル状態間を切り替える目的を視覚的に説明するビューを設定します。例えば:


@State private var vibrateOnRing = false

var body: some View {
    Toggle(isOn: $vibrateOnRing) {
        Text("Vibrate on Ring")
    }
}

Label ベースのラベルという一般的なケースでは、タイトル文字列(またはローカライズされた文字列キー)とシステムイメージの名前を受け取るコンビニエンスイニシャライザーを使用できます。


@State private var vibrateOnRing = true

var body: some View {
    Toggle(
        "Vibrate on Ring",
        systemImage: "dot.radiowaves.left.and.right",
        isOn: $vibrateOnRing
    )
}

テキストのみのラベルの場合は、続くクロージャの代わりに、タイトル文字列(またはローカライズされた文字列キー)をその最初のパラメータとして受け取るコンビニエンスイニシャライザーを使用できます。


@State private var vibrateOnRing = true

var body: some View {
    Toggle("Vibrate on Ring", isOn: $vibrateOnRing)
}

ラベルにサブタイトルを追加したい場合は、複数の Text ビューを作成するビュービルダーを使用します。最初のテキストはタイトルを表し、2 番目のテキストはサブタイトルを表します。


@State private var vibrateOnRing = false

var body: some View {
    Toggle(isOn: $vibrateOnRing) {
        Text("Vibrate on Ring")
        Text("Enable vibration when the phone rings")
    }
}

注意


この動作は Button には適用されません。


トグルのスタイル設定


トグルは、プラットフォームとコンテキストの両方に基づいて変化するデフォルトスタイルを使用します。詳細については、automatic トグルスタイルに関する説明をご覧ください。


トグルの外観と操作は、toggleStyle(_:) 修飾子を使用してスタイルを適用することでカスタマイズできます。switch などの組み込みスタイルは、トグル自体、またはトグルを含むビュー階層に適用できます。


VStack {
    Toggle("Vibrate on Ring", isOn: $vibrateOnRing)
    Toggle("Vibrate on Silent", isOn: $vibrateOnSilent)
}
.toggleStyle(.switch)

ToggleStyle プロトコルに準拠する型を作成することで、カスタムスタイルを定義することもできます。





トピックス


トグルの作成


init(_:isOn:)

ローカライズされた文字列キーからそのラベルを生成するトグルを作成します。


init(isOn: Binding<Bool>, label: () -> Label)

カスタムラベルを表示するトグルを作成します。


init(_:image:isOn:)

ローカライズされた文字列キーと画像リソースからそのラベルを生成するトグルを作成します。


init(_:systemImage:isOn:)

ローカライズされた文字列キーとシステムイメージからそのラベルを生成するトグルを作成します。



コレクション用のトグルを作成する


init(_:sources:isOn:)

ローカライズされた文字列キーからそのラベルを生成する、値のコレクションを表すトグルを作成します。


init<C>(sources: C, isOn: KeyPath<C.Element, Binding<Bool>>, label: () -> Label)

カスタムラベル付きの値のコレクションを表すトグルを作成します。


init(_:image:sources:isOn:)

ローカライズされた文字列キーと画像リソースからそのラベルを生成する、値のコレクションを表すトグルを作成します。


init(_:systemImage:sources:isOn:)

ローカライズされた文字列キーとシステムイメージからそのラベルを生成する、値のコレクションを表すトグルを作成します。



構成からトグルを作成する


init(ToggleStyleConfiguration)

トグルスタイルの構成に基づいてトグルを作成します。



アプリインテント用のトグルを作成する


init<I>(isOn: Bool, intent: I, label: () -> Label)

AppIntent を実行するトグルを作成します。


init(_:isOn:intent:)

AppIntent を実行するトグルを作成し、ローカライズされた文字列キーからそのラベルを生成します。





関連


以下に準拠


View





以下も見よ


数値入力を取得する


struct Slider

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


struct Stepper

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


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

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














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ