固定要素のリスト表示をする場合、定数の配列を展開することが多いかと思いますが、enumで定義した要素を展開することも出来ます。
enum要素をListに展開する方法
早速コード例を見ていきましょう。
struct ContentView: View {
enum ProgramingLanguages: String, CaseIterable {
case swift = "Swift"
case java = "Java"
case csharp = "C#"
case php = "PHP"
case ruby = "Ruby"
case kotlin = "Kotlin"
case python = "Python"
}
var body: some View {
List(ProgramingLanguages.allCases, id: \.self) { language in
Text(language.rawValue)
}
}
}
ポイントは enum に CaseIterable プロトコルを継承しているところです。これを継承することで、List に展開する際に allCases プロパティを使用することが出来ます。
allCases の実体は以下のようになっています。
static var allCases: [ProgramingLanguages] {
return [.swift, .java, .csharp, .php, .ruby, .kotlin, .python]
}
最後に実行画面を貼っておきます。
CaseIterable の公式リファレンスはこちらです。
今回は短いですが、以上です。
コメントを残す