为什么 swiftUI 列表不懒惰(与 lazyVStack 相比)?

why is the swiftUI list not lazy (compared to lazyVStack)?

提问人:printDavid 提问时间:2/22/2022 最后编辑:Joakim DanielsonprintDavid 更新时间:2/22/2022 访问量:3988

问:

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

List(element,  id: \.objectID, selection: $selection) { file in 
    RowView(file)
}
     

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

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

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

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

迅速 列表 延迟加载 lazyvstack

评论

10赞 Joakim Danielson 2/22/2022
它在 iOS 上很懒惰,但在 macOS 上还不是。

答: 暂无答案