我有一个具有3个视图的应用程序,其中2个是tableViews(列表),在第三个视图上,我尝试通过传递数据(文本和gifs)加载gif,列表中的每个项目都不相同。

ios - 在tableView中加载.gif-LMLPHP

我发现了一个扩展名为gift_strong的gif播放器SwiftGif ,它在普通viewControllers中使用时效果很好,但是在tableViews之间传递数据时gif不会移动。

SwiftGif 包含以下功能:

extension UIImageView {

public func loadGif(name: String) {
    DispatchQueue.global().async {
        let image = UIImage.gif(name: name)
        DispatchQueue.main.async {
            self.image = image
        }
    }
}

我的 ThirdView.swift 文件包含:
import Foundation
import UIKit
import ImageIO

let name = String()
var gifs =  UIImage.gif(name: name)


struct IngredientsAndDirections {
  var ThirdViewArray = [String]()
  var Pic = [gifs]
}

但是我不知道如何在gif数组上调用loadGif函数来使我的gif移动。

有什么建议吗?

最佳答案

有一个名为FLAnimatedImage的库。您可以在代码中使用此库。

之后,您只需要导入类并将gif图像放入Xcode中的资源文件夹中即可。

import FLAnimatedImage

然后,您需要使用以下代码查看gif
动画。
guard let gifImageUrl = Bundle.main.path(forResource: "gifImage", ofType: "gif") else { return }
let gifData = try? Data(contentsOf: URL(fileURLWithPath: gifImageUrl))
let animGIFImage = FLAnimatedImage(animatedGIFData: gifData)
yourImageView.animatedImage = animGIFImage

注意:-

在您的imageView类名称中定义为FLAnimatedImageView
故事板文件和您的出口应该像这样@IBOutlet弱变量
imageView:FLAnimatedImageView!

10-08 08:05