【发布时间】:2020-05-21 14:07:14
【问题描述】:
我想让动物以不同的延迟眨眼Int.random(in: 1..<9)
问题是:
UIView 动画和异步线程延迟有解决方案...但是UIImage.animatedImage 有什么方法可以在闪烁之间进行延迟吗?
如果根本没有方法 - 我该如何解决我的问题?
代码:
所有动画的文件:
import SwiftUI
struct AnimalAnimation: UIViewRepresentable {
@Binding var animalImages: [UIImage?]
@Binding var size: CGRect
func makeUIView(context: Self.Context) -> UIView {
let someView = UIView(frame: CGRect(x: size.minX, y: size.minY , width: size.width, height: size.height))
let someImage = UIImageView(frame: CGRect(x: 0, y: 0, width: size.width, height: size.height))
let animated = UIImage.animatedImage(with: animalImages as! [UIImage], duration: 0.9)!
someImage.clipsToBounds = true
someImage.autoresizesSubviews = true
someImage.contentMode = UIView.ContentMode.scaleAspectFit
someImage.image = animated
someView.addSubview(someImage)
return someView
}
func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext<AnimalAnimation>) {
}
}
我在 ContentView 的 body 中使用它
VStack {
AnimalAnimation(animalImages: $animal1Array, size: $animal1Size)
}
图片:
animalImages = [UIImage(named: "eyes-open"),UIImage(named: "eyes-closed")]
【问题讨论】:
-
闪烁在哪里?目前尚不清楚预期的延迟时间。
-
@Asperi, animalImages = [UIImage(named: "eyes-open"),UIImage(named: "eyes-closed")]
标签: ios image animation swiftui delay