我正在使用
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)
)?谢谢。