小编pri*_*vid的帖子

为什么 swiftUI 列表不是惰性的(与lazyVStack相比)?

SwiftUI 中的列表真的很懒吗?我有一个从 coreData 获取的 5000 个元素的列表,我想将它们显示在列表中。我读了很多评论(例如: https: //developer.apple.com/forums/thread/651256),认为列表是懒惰的,但对我来说,看起来它们不是......加载列表需要 15 秒。

List(element,  id: \.objectID, selection: $selection) { file in 
    RowView(file)
}
     
Run Code Online (Sandbox Code Playgroud)

如果我使用 ScrollView + LazyVStack + ForEach 代替,加载时间不到一秒。

ScrollView {
    LazyVStack(alignment: .leading, spacing: 0) {
         ForEach(element, id: \.objectID) { file in
             RowView(file)
                .onTapGesture {
                    selection = Set([file.objectID])
                }
         }
    }
}
            
Run Code Online (Sandbox Code Playgroud)

我更喜欢列出一个列表来利用它提供的功能。我做错了什么还是列表不懒惰?

感谢帮助!(我正在使用 SwiftUI(适用于 Mac))。

lazy-loading list swift lazyvstack

12
推荐指数
0
解决办法
4223
查看次数

标签 统计

lazy-loading ×1

lazyvstack ×1

list ×1

swift ×1