LoginSignup
1
2

【SwiftUI】Pickerの特定の項目をユーザーが選択できないようにしたい(iOS17)

Posted at

はじめに

iOS17からselectionDisabledというモディファイアが追加されていました。
これはユーザーが選択できなくさせるようにするための機能っぽいです。

例えば、課金でしか使えない機能を選択できなくするみたいなことです。

あれ、disabledでもできなかったっけって思ったのですが、Pickerだと機能してませんでした。

サンプルアプリ

Simulator Screen Recording - iPhone 15 - 2023-12-21 at 18.05.20.gif

実装

import SwiftUI

struct ContentView: View {
    @State private var selected: Int = 0
    
    var body: some View {
        Picker("選択", selection: $selected) {
            Text("機能1")
                .tag(1)
                .selectionDisabled(false)
            Text("機能2")
                .tag(2)
                .selectionDisabled(false)
            Text("機能3(未開放)")
                .tag(3)
                .selectionDisabled(true)
            Text("機能4(未開放)")
                .tag(4)
                .selectionDisabled(true)
        }
    }
}

おわり

今までこれできなかったんですかね?
なんか方法があったような?

公式ドキュメント

1
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
1
2