SwiftUI CaseIterable 的代码演示

4 min read

以下是SwiftUI CaseIterable的一个简单演示。

enum Fruit: String, CaseIterable {
    case apple
    case banana
    case orange
    case grape
}

struct ContentView: View {
    var body: some View {
        VStack {
             ForEach(Fruit.allCases, id: \.self) { fruit in
                 Text(fruit.rawValue.capitalized)
                     .padding()
             }
        }
    }
}

上面的代码定义了一个Fruit枚举类型,它有四个值:苹果、香蕉、橙子和葡萄。该枚举还实现了CaseIterable协议,因此我们可以使用Fruit.allCases获取所有可能的值数组。

在视图中,我们通过ForEach循环遍历所有枚举案例,并将其表示为文本。我们使用id参数来告诉SwiftUI如何区分枚举案例。在这里,我们使用了\self键路径,它将枚举案例本身作为标识符。由于枚举案例是唯一的,这将确保任何更改都将被正确地应用于逐列视图。