【发布时间】:2019-07-22 17:52:34
【问题描述】:
我想在 SwiftUI 的图像视图中为图像设置动画
首先,我尝试创建一些变量和一个函数来切换 Image("imageVariable")。它改变了但没有动画甚至尝试了withAnimation { }方法
其次,我尝试使用 UIKit 视图。在这里,动画有效,但我无法应用 resizable() 修饰符或设置固定帧
var images: [UIImage]! = [UIImage(named: "pushup001")!, UIImage(named: "pushup002")!]
let animatedImage = UIImage.animatedImage(with: images, duration: 0.5)
struct workoutAnimation: UIViewRepresentable {
func makeUIView(context: Self.Context) -> UIImageView {
return UIImageView(image: animatedImage)
}
func updateUIView(_ uiView: UIImageView, context: UIViewRepresentableContext<workoutAnimation>) {
}
}
struct WorkoutView: View {
var body: some View {
VStack {
workoutAnimation().aspectRatio(contentMode: .fit)
}
}
}
在方法 1 中我可以更改图像但不能动画,而在方法 2 中我可以动画但不能控制它的大小
【问题讨论】:
-
问候尝试#2...您不能简单地将both UI 动画和
contentMode移动到您的UIImageView?此时UIViewRelatable可以简单地将内容呈现为View的完整大小。 -
@dfd 我会尝试在 UIView 中做大部分事情,然后简单地将其用于在 SwiftUI 中显示。
-
@kontiki 对图像进行动画处理是指在同一视图中播放 gif/帧动画,而不是视图转换。在这一点上,在 SwiftUI 中似乎是不可能的,因此放弃了。你认为没有 UIKit 也能做到吗?
-
哦,如果是这样的话,那么使用 UIKit 可能会更好(至少目前是这样)。
标签: ios swift uiimageview swiftui