我正在使用 SwiftGif为我制作的 GIF 制作动画的框架,问题是我需要知道当前显示的是哪个图像。
该扩展使用 UIImage.animatedImage(with images: [UIImage], duration: TimeInterval) -> UIImage? 来显示动画图像。
这是我加载 gif 的方式:
spikes.loadGif(name: "Trap")
这是我如何得到我想比较的图像:
spikes.image.images[2]
我知道这些解释很薄弱,但我找不到更多相关信息,但是如果可以帮助您,我可以为您提供更多信息。
如果您知道任何其他可能涉及我使用其他框架的解决方案,我也会接受。
Best Answer-推荐答案 strong>
如果有人像我一样需要答案,我找到了办法。
- 使用扩展的 loadGif() 方法加载 GIF
- 由于构成 GIF 的图像现在存储在
spikes.image.images 中,因此我将这些图像存储在另一个变量中
- 设置
spikes.image = nil 以取消 loadGif() 方法生成的动画
- 制作一个不断改变 View 实际图像的计时器
它是这样的:
spikes.loadGif(name: "Trap", completion: { _ in
self.spikesImages = self.spikes.image?.images
self.spikes.image = nil
self.spikes.image = self.spikesImages.first?.img
self.animateSpikes()
})
func animateSpikes() {
Timer.scheduledTimer(withTimeInterval: 0.5, repeats: true, block: { _ in
if let currentImage = self.spikesImages.first {
self.spikes.image = currentImage
self.spikesImages.append(currentImage)
self.spikesImages.remove(at: 0)
}
})
}
我很确定这不是最好的方法,但它确实有效
关于ios - 如何获取动画 GIF 图像的当前图像?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/43741598/
|