UIをのPicker(ピッカー)を使えば画像のような項目を選択できる表示を簡単に実装することができます。Text("選択肢3").tag(2)}引数の中には選択されたインデックス番号(値)が格納されるselectionと表示されるラベルを定義できるlabelが指定できます。12.2頃から仕様かバグにより表示されないようです。selectionは値を変更できるように@Stateをつけて宣言しておきます。選択肢はText()などを使って表示部分を列挙していきます。.tag(数値)をつけることで選択肢のインデックス番号を明示的に指定することができます。インデックス番号の並び順を変更しても実際に表示される順番はコードの順番になるので注意してください。引数selectionに選択された値が格納されるラベル部分はそのままでは表示されない.tag()でインデックス番号を指定できる.tag()で指定した順番と表示される順番は一致しない簡易的なPickerの使い方@Stateを使ってselectedをbodyの外側に宣言しておきます。初期値として値を入れ込んでおけば選択肢のデフォルト値を変更することもできます。}}selectedに格納されているのはインデックス番号なので選択肢の値を表示させることはできません。.tag(数値)をつけ忘れるとselectedには何も格納されないので注意してください。選択された値を表示させるには配列を使うと便利です。配列なのでForEachを使って簡単に表示させる選択肢を構築することも可能です。..tag()の指定も不要になります。}}あとは配列の中から選択されたインデックス番号と同じ番号の要素を表示させればOKです。ForEach分の構文ForEachは配列の範囲を指定する際の構文が少し異なるのでそれによってPickerを扱う時も注意が必要です。範囲は0..<配列の要素数までなので配列.countを使って指定します。literalという警告が出てしまいます。\.selfを追加します。0..<lang.countはlang.indicesで表現できます。Text(lang[index])}さらにlang.indicesとせずとも配列をそのまま指定してもOKです。その際はselectedLang部分にインデックス番号ではなく値(文字列)自体が格納されます。}なので@Stateで宣言しているselectedLangはインデックス番号ではなく初期値に設定する文字列をそのまま格納しておきます。12.2頃から仕様かバグかでデフォルトで表示されなくなってしまったらしいので表示させる方法をみていきます。元々は非表示にする際は.labelsHiddenを指定していました。Text(ラベル)として表示させるまずは普通にText(ラベル)として表示させます。VStackなどで配置を調整してあげます。UI】HStack/VStack/ZStackの違いと組み込む方法!LazyHStackの使い方navigationTitleとして表示させるNavigationViewのnavigationTitleを使って表示させます。Pickerに対して指定しないと表示されないので注意してください。}.navigationTitle(Text("スポット"))}Sectionとして表示させるSectionのヘッダーとして表示させるにはVStackで囲んでおきます。}}iPhoneの設定画面のように表示させるNavigationViewとFormを使えばiPhoneの設定画面のようなラベル名と選択項目が並んだレイアウトにすることができます。クリックすると別ページに移動し選択肢を選べるようになります。}}Pickerのスタイルを変更するPickerのスタイルはpickerStyleモディファイアで簡単に変更できます。}}.pickerStyle(SegmentedPickerStyle())なぜかこのスタイルでビルドしようとすると以下のようなエラーが発生しましたが、問題なくビルドすることができました。}}.pickerStyle(WheelPickerStyle())WheelPickerStyleではアイテムの背景色などを変更することは可能ですがアイテム自体の高さや形を変更することはできないようです。変更したい場合はUIKitのUIPickerViewをUIViewRepresentableで実装して以下の設定から変更するしかないかもです。50}※watchOSならdefaultWheelPickerItemHeightメソッドで高さを変更することができます。枠線と背景色をつけるPickerに枠線や背景色をつけたい場合はViewのモディファイアを使用することで簡単に変更できます。文字色を変更したい場合はtintを使用します。角を丸めた枠線はborderではできないので以下のようにすることで実装できます。2))データに列挙型(enum)を指定する方法Pickerで表示するデータに列挙型を渡すにはポイントとなる2つのプロトコルを指定します。列挙型(enum)を指定する際のポイントIdentifiableプロトコルCaseIterableプロトコルおすすめ記事:【Swift】プロトコルの使い方とメリットとは?実装を任意にする方法Identifiableプロトコルとはその構造の中に一意となる「識別子:identifier」を定義することを義務付けるプロトコルです。これに倣ってidプロパティを追加で定義します。4.2から使用可能になったプロトコルで定義されているプロパティの値をコレクション形式で取得できるallCasesプロパティが実装されます。__lldb_expr_1.Spot.parking]あとはこれを組み合わせてPickerの構文に当てはめるだけです。}}Pickerに画像を使用する画像を使用する方法は以下の記事を参考にしてください。/code>クラスを使用します。詳細について以下の記事を参考にしてください。おすすめ記事:【Swift】UIPickerViewの使い方!選択された値を取得する方法まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。ご覧いただきありがとうございました。友達や家族の誕生日を登録しておくと当日に通知が届きお知らせしてくれるiOSアプリです。貸し借り管理アプリお金の貸し借りを管理するためのアプリです。貸借の色が分かれているので識別しやすく、使いやすさを求めてできるだけシンプルなUIにしています。カシホン人に貸すことが多く、誰に貸したか忘れがちな本の貸し借りを記録できるアプリです。