我知道SwiftUI目前不支持常规的for循环,而是提供了一个称为ForEach的东西,但是和List之间有什么区别?
Mis*_*cha 28
ForEach是一个视图,可让您将数据集合传递给其初始化程序,然后从您提供的闭包中创建多个“子视图”。关于如何排列视图,它没有任何语义。
ForEach(1...5) { row in
Text("Row \(row)")
}
Run Code Online (Sandbox Code Playgroud)
将创建等效的
Text("Row 1")
Text("Row 2")
Text("Row 3")
Text("Row 4")
Text("Row 5")
Run Code Online (Sandbox Code Playgroud)
包装在单个容器视图中。
List是可以将多个视图组合在一起的视图,但不一定是同一类型的视图。您可以简单地添加多个视图而没有任何循环。
List {
Image("avatar")
Text("Title")
Button(action: {
print("Button tapped!")
}) {
Text("Energize!")
}
}
Run Code Online (Sandbox Code Playgroud)
为方便起见,如果您要具有仅由单个单元格类型组成的列表,则List初始化器允许您像ForEach视图一样使用它。
List(1...5) { row in
Text("Row \(row)")
}
Run Code Online (Sandbox Code Playgroud)
列表具有特殊的外观,具体取决于平台。例如,在iOS上,列表将显示为表格视图,并在其垂直堆叠的视图之间插入分隔线。
您可以在ForEach视图内部使用视图List来具有动态和静态内容,这是SwiftUI的一项非常强大的功能。
List {
Text("Food")
ForEach(meals) { meal in
Text(meal.name)
}
Text("Drinks")
ForEach(drinks) { drink in
Text(drink.name)
}
}
Run Code Online (Sandbox Code Playgroud)yoA*_*ex5 14
SwiftUI 列表与 ForEach
List:
ForEach:
List+ ForEach= 超级功能。例如,在这种情况下,List对来自 的每个视图使用重用单元格模式ForEach。您还可以使用onMove,onDelete...
简单解释:
| 归档时间: |
|
| 查看次数: |
5055 次 |
| 最近记录: |