以下是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
键路径,它将枚举案例本身作为标识符。由于枚举案例是唯一的,这将确保任何更改都将被正确地应用于逐列视图。