今回作成するアプリに複数の選択肢から1つだけ値を選択する機能が必要なので
Pickerという部品を使って実装してみました。
SwiftUI初学者の方々に参考になれば嬉しいです。
実装後の動作は以下になります。
![mojikyo45_640-2.gif](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F1223933%2Fc161dcfa-3f2f-5262-9cb2-dd460eb9cda7.gif?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=38bbbd49958a39eeb9616f804b696245)
ソースコードは以下です。
import SwiftUI
struct ContentView: View {
@State var selection: String = "和食"
var array: [String] = ["和食", "洋食", "中華"]
var body: some View {
VStack {
Picker(selection: $selection,label: Text(selection).frame(width: 100)) {
ForEach(array, id: \.self) { word in
Text(word).tag(word)
}
}
.pickerStyle(MenuPickerStyle())
.padding()
.cornerRadius(5)
Text("選択値:\(selection)")
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
pickerStyleを変更すれば、よくあるスクロール形式?のリスト表示も出来ます。
ここをこうした方が可読性が上がるとか、もっとスマートになるとかあればコメントお願いします。
※見直したらGIFの動きがめちゃくちゃ遅いですね。変換時の設定ミスっぽいです。気をつけます