SwiftUI中的ForEach 视图对于遍历一个数组或一个范围非常有用,并生成我们可以使用的视图。
例如,这里我们创建了3个Text 视图,打印从0到2的数字。
ForEach(0..<3) {
Text("\($0)")
}
$0指的是传递给闭包的第一个参数,在这个例子中,它是(按顺序)数字0、1和2。
在这个例子中,我把它们嵌入到一个VStack ,否则它们会重叠。
VStack {
ForEach(0..<3) {
Text("\($0)")
}.padding()
}

注意我是如何使用
padding()修改器来增加一些间距的
使用ForEach 的一个常见方法是在List 视图内。
List {
ForEach(0..<3) {
Text("\($0)")
}
}

这是一个很常见的做法,我们实际上可以省略ForEach ,直接从List 迭代。
List(0..<3) {
Text("\($0)")
}

这两个例子使用了一个范围0..<3 。我们也可以对一个数组进行迭代。
let fruits = ["Apple", "Pear", "Orange"]
//...
List {
ForEach(fruits, id: \.self) {
Text("\($0)")
}
}

注意在这种情况下,我们有另一个参数:id 。
这是为了唯一地识别数组中的项目。
用\.self 来表示id ,这对内置类型是有效的,如果你要迭代一个自定义的结构,你就需要它符合Identifiable 协议或者提供一个唯一的参数。