SwiftUIのToggle(UISwitch)の使い方【SwiftUI入門】

今回は、機能の ON/OFF などに使う Toggle についてのサンプルを紹介します。

SwiftUIのToggle(UISwitch)の使い方

UIKit では UISwitch と呼ばれていたものが、SwiftUI では Toggle というものに変わっています。

まず、イニシャライザーを見ていきましょう。

Toggle(isOn: Binding<Bool>, label: () -> ToggleStyleConfiguration.Label)

isOn: Binding<Bool> には bool 値の状態変数(@State)を渡します。実際にスイッチを ON/OFF するとこの Bool 値が切り替わります。

label: () -> ToggleStyleConfiguration.Label にはスイッチのラベルを返すクロージャを渡します。ラベルを返すだけでなく、isOn の Bool 値を見て任意の処理分岐をさせることができます。

次に表示スタイルですが、.toggleStyle メソッドで指定します。

.toggleStyle(SwitchToggleStyle())

DefaultToggleStyle は SwitchToggleStyle と同じ結果となります。

公式リファレンスには CheckBoxToggleStyle というものが載っているのですが、Xcode 上で設定してみようとしたら、「‘CheckboxToggleStyle’ is unavailable in iOS」と言われてしまいました。

deprecated になっている訳でもないので、今後追加される予定なのでしょうか?ご存知の方がおりましたらコメント頂けるとありがたいです。

CheckBoxToggleStyle についてわかったら更新します。

※コメント頂きまして、公式リファレンスによると MacOS アプリ用のスタイル指定のようでした(tnさんありがとうございます)。

最後に冒頭サンプルの全コードです。

struct ContentView: View {
    
    @State private var isOn = false
    
    var body: some View {
        Form {
            Toggle(isOn: $isOn) {
                if self.isOn {
                    Text("設定は ON です。")
                } else {
                    Text("設定は OFF です。")
                }
            }
            .toggleStyle(SwitchToggleStyle())
        }
    }
}

以上

2件のコメント

tnさん
>macOS 10.15+と書いてあったので、macOS用みたいです。
コメントありがとうございます。ドキュメントの確認不足でした、すみません。
この旨記事に追記いたしました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です