LoginSignup
0
2

More than 1 year has passed since last update.

【SwiftUI】Toggleスイッチを非活性にする方法

Last updated at Posted at 2021-06-13

アプリ作成を進める中で2つToggleスイッチを使用する場面がありました。
どちらか片方が選択されている場合、もう片方は非活性にしたかったのですが、
調べても参考になる記事が出てこなかったのでメモとして残しておきます。
初学者の方に参考になればと思います。

実装方法

とてもシンプルで、buttonと同じくdisabledモディファイアを使用して実現できました。

output.gif

ソースコード

SwiftUI
import SwiftUI

struct ContentView: View {
    // トグルスイッチフラグ
    // デフォルトはoffにしたいためfalse
    @State private var toggleFlg1 = false
    @State private var toggleFlg2 = false

    var body: some View {

        HStack(spacing: 15) {
            Text("スイッチ1")
                .lineLimit(1)
            Text(toggleFlg1 ? "ON" : "OFF")
                .font(.custom("Times-Roman", size: 15))
            Toggle("", isOn: $toggleFlg1)
                .disabled(toggleFlg2)
                .labelsHidden()

            Text("スイッチ2")
                .lineLimit(1)
                .font(.body)
            Text(toggleFlg2 ? "ON" : "OFF")
                .font(.custom("Times-Roman", size: 15))
            Toggle("", isOn: $toggleFlg2)
                .disabled(toggleFlg1)
                .labelsHidden()
                .font(.body)
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2