SwiftUI:如何在使用具有页面样式的 TabView 时预加载下一页

问题描述 投票:0回答:0

我正在使用

TabView
显示图像页面:

TabView(selection: self.$index) {
  ForEach(0..<100) { index in
    PageImage(id: pageIds[index]).tag(index)
  }
}
  .tabViewStyle(.page(indexDisplayMode: .never))

这些图像是从网络上异步加载的,我有这样的

PageImage

@StateObject private var pageModel = PageImageModel()

...

var body: some View {
  if let imageData = pageModel.imageData {
    Image(uiImage: UIImage(data: imageData)!)
  } else {
    ProgressView(value: pageModel.progress)
      .onAppear {
        imageModel.load(id: id)
      }
  }
}

除了图像仅在我到达该页面后才加载外,它可以正常工作。无论如何我可以告诉 TabView 在我到达该页面之前预加载页面(即触发

imageModel.load(id: id)
)?谢谢。

swiftui preload tabview
© www.soinside.com 2019 - 2024. All rights reserved.