在tableView中加载.gif文件

时间:2017-08-06 16:59:20

标签: ios swift uitableview gif animated-gif

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

enter image description here

我找到了一个名为 SwiftGif 的GIF扩展程序,在普通的 viewControllers 中使用时效果很好,但在之间传递数据时gif没有移动tableViews

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移动。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

有一个名为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!

答案 1 :(得分:0)

万一有人在寻找解决方案(迅速4)。

  1. 我实现了库https://github.com/swiftgif/SwiftGif
  2. 使用名称和图像创建的数组(变量名称:NSArray = [],变量图像:NSArray = []
  3. 在viewDidLoad中插入所有数组(名称= [“”,“”,“”]和images = [“”,“”,“”]->计数必须相同)
  4. 创建了TableViewCell.swift文件,插入了所有数据
  5. 通过传递数据,所有内容都可以发挥作用,gif甚至可以在tableViews中移动