我有一个由内容异步加载的 View 组成的 ScrollView
。理想情况下,元素可以是无限的,因此我决定将它们包装在 LazyVStack 中。
问题是异步内容需要一些时间来加载,因此当滚动时,它会在一段时间后出现。我想提前一点开始加载。有没有办法让 LazyVStack
认为显示的 View 大一点?
ScrollView {
LazyVStack {
ForEach(modelURLs) { modelURL in
AsyncModel(url: modelURL)
}
}
}
最佳答案
我找到了一种适合我的具体情况的解决方案,我希望有一个更好的解决方案:
struct ModelList: View {
let models: [ModelURLs]
private let preloadingPadding: CGFloat = 300 // !!!
var body: some View {
ScrollView {
LazyVStack {
ForEach(modelURLs) { modelURL in
AsyncModel(url: modelURL)
}
}.padding(preloadingPadding) // !!!
}.padding(-preloadingPadding) // !!!
}
}
关于ios - 展开 LazyVStack 显示区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65289475/