どうも、ちょげ(@chogetarou)です。
Pickerでenum(列挙体)を使う方法を紹介します。
方法

Pickerでenumを使うには、ForEachとプロトコルを使います。
まず、enumにString、CaseIterable、Identifianleを準拠させます。
また、enumには、「id」を追加します。
enum name : String, CaseIterable, Identifiable {
var id: String{ self.rawValue }
・・・
}
次に、ForEachの第1引数にenumのallCasesプロパティを指定します。
あとは、列挙体の値をTextで表示し、tagでenumの値を指定します。
ForEach(name.allCases, id: \.self) { value in
Text(value.rawValue)
.tag(value)
}
これでPickerでenumを使うことが出来ます。
使用例

enum Fruits : String, CaseIterable, Identifiable {
var id: String{ self.rawValue }
case apple
case banana
case grape
}
struct ContentView: View {
@State var fruit = Fruits.apple
var body: some View {
VStack {
Picker("Select Fruit", selection: $fruit) {
ForEach(Fruits.allCases, id: \.self) { value in
Text(value.rawValue)
.tag(value)
}
}
}
}
}
コメント