例如:

List {
    ForEach(models) { element in 
        /* ... */
    }
}

Why is a ForEach wrapped within a List? What's the benefit of that pattern?

为什么不单独使用List(models) { ... },根本不使用ForEach呢?

推荐答案

在SwiftUI视图中显示项目列表时,通常使用包装在List中的ForEach loop.列表初始化器为项创建滚动容器,而ForEach循环迭代项并 for each 项创建一个新视图.这种模式允许高效、动态地更新列表,因为SwiftUI可以自动区分新旧列表,并确定需要更新或删除哪些视图.

如果您单独使用List(model) { ... },并且根本不使用ForEach,那么它将只接受一项,并且不会迭代列表.

Swift相关问答推荐

如何取消正在视图修改器中运行的任务

编写Swift字符串的属性包装时遇到问题

如何使泡泡上的箭头直达封闭矩形

使用UICollectionViewFlowLayout创建水平的UICollectionView,并同时将单元格对齐到左边和右边的能力

Xcode 15 Beta中如何使用@Observable?

ConfirmationDialog取消swiftui中的错误

为什么在Swift中每次调用Decimal类型的formatted()方法都会越来越慢?

RxSwift 事件触发了两次

如何从数据中读取以空结尾的字符串?

在 Swift 中为(递归)扩展提供默认实例参数

如何有条件地依赖桌面与 iOS 的系统库?

将数据附加到 Firebase 实时数据库后,NavigationLink 将我重定向到上一个视图

如何处理永远不会失败的 String.Encoding 初始化程序?

RealityKit – 无法加载 ARView(发现为零)

为什么swiftui中的导航视图栏那么大?

在 Swift 4 中实现自定义解码器

在 Swift 中获取双精度的小数部分

在 Swift 中指定 UITextField 的边框半径

类型myViewController不符合 Swift 中的协议 UIPIckerDataSource

我可以让#selector 引用 Swift 中的闭包吗?