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

Loading Image from Core Data makes NavigationView transition jumpy

在我的 SwiftUI 应用程序中,当用户单击列表中的项目时,它会将用户带到详细信息视图。在细节视图中,我们需要显示从 Core Data 加载的图像。图像数据将在 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!)!
        }
    }