从 Core Data 加载图像使 NavigationView 过渡变得跳跃
Posted
技术标签:
【中文标题】从 Core Data 加载图像使 NavigationView 过渡变得跳跃【英文标题】:Loading Image from Core Data makes NavigationView transition jumpy 【发布时间】:2020-12-08 11:17:09 【问题描述】:在我的 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!)!
如何解决跳跃的过渡?
【问题讨论】:
【参考方案1】:.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!)!
【讨论】:
以上是关于从 Core Data 加载图像使 NavigationView 过渡变得跳跃的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 SQLite 文件预加载 Core Data,该文件引用使用“外部存储”保存的图像?