【发布时间】:2020-10-12 11:40:29
【问题描述】:
我有两张图片,ImageA 和 ImageB,我的目标是通过以下方式为它们之间的过渡设置动画:
-
ImageA已加载 - 暂停 1 秒
-
ImageA转换为ImageB,持续时间为 1.5 秒
对于常规 Swift,它将使用带有动画持续时间和暂停的 UIView.animate 闭包。
这是我对 SwiftUI 的尝试,它没有显示平滑过渡,而是显示了硬图像更改:
VStack(alignment: .leading, spacing: 0) {
Image(images.randomElement()!)
.resizable()
.scaledToFill()
.onAppear {
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
withAnimation() { //added
self.shouldTransition.toggle()
}
}
if shouldTransition {
Image(images.randomElement()!)
.resizable()
.animation(.easeInOut(duration: 1.5))
.scaledToFill()
}
}
我在实现图像过渡动画时缺少什么?
编辑:整个代码库可以在这里找到:TestWidget Github
【问题讨论】: