我有一个由视图组成的ScrollView,它的内容是异步加载的。理想情况下,元素可以是无限的,所以我决定将它们包装在LazyVStack中。问题是,异步内容需要一段时间才能加载,所以当滚动它时,它会在一段时间后出现。我想在此之前开始加载它们。有没有办法让LazyVStack认为显示的视图有点大?
ScrollView {
LazyVStack {
ForEach(modelURLs) { modelURL in
AsyncModel(url: modelURL)
}
}
}发布于 2020-12-14 22:54:59
我找到了一个在我的具体案例中有效的解决方案,我希望是一个更好的解决方案:
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) // !!!
}
}https://stackoverflow.com/questions/65289475
复制相似问题