从核心数据加载图像会使NavigationView转换变得跳跃



在我的SwiftUI应用程序中,当用户单击列表中的项目时,它会将用户带到详细信息视图。在详细信息视图中,我们需要显示从核心数据加载的图像。图像数据将在NavigationView转换完成之前准备好,但当图像出现时,NavigationView过渡会变得跳跃。

下面是GIF图片,可以看到跳跃的过渡:https://gph.is/g/aQqBqRA

请在下面找到我的代码:

Image(uiImage: self.currentImage)
.resizable()
.aspectRatio(contentMode: .fit)
}
.onAppear {
DispatchQueue.main.async {
self.currentImage = UIImage(data: issue.photosArray[0].photoData!)!
}
}

如何修复跳跃过渡?

.onAppear在动画开始前被调用,因此加载的图像会在动画过程中导致视图重建,从而产生观察到的效果。

如果图像无法在动画之前完全加载,则最好将其推迟到完成动画之后的(如(

Image(uiImage: self.currentImage)
.resizable()
.aspectRatio(contentMode: .fit)
}
.onAppear {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
self.currentImage = UIImage(data: issue.photosArray[0].photoData!)!
}
}

最新更新