如何获取动画 GIF 图像的当前图像?

A.纳托利

我正在使用SwiftGif框架为我制作的 GIF 制作动画,问题是我需要知道当前显示的是哪个图像。该扩展程序UIImage.animatedImage(with images: [UIImage], duration: TimeInterval) -> UIImage?用于显示动画图像。

这是我加载 gif 的方式:

spikes.loadGif(name: "Trap")

这是我如何获得我想与它进行比较的图像:

spikes.image.images[2]

我知道这些是薄弱的解释,但我找不到更多相关信息,但是如果可以帮助您,我可以为您提供更多信息。

如果您知道任何其他可能涉及我使用另一个框架的解决方案,我也会接受。

A.纳托利

如果有人像我一样需要答案,我找到了解决方法。

  1. 使用扩展的 loadGif() 方法加载 GIF
  2. 由于构成 GIF 的图像现在存储在 中spikes.image.images,我将这些图像存储在另一个变量中
  3. 设置spikes.image = nil为取消从loadGif()方法生成的动画
  4. 制作一个不断改变视图的实际图像的计时器

这是它的样子:

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)
            }
        })
    }

我很确定这不是最好的方法,但它有效

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章