【问题标题】:Loading .gif in tableView在 tableView 中加载 .gif
【发布时间】:2017-08-06 16:59:20
【问题描述】:

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

我找到了一个名为 SwiftGif 的 gif 播放扩展,在普通 viewControllers 中使用时效果很好,但是在 之间传递数据时 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 动起来。

有什么建议吗?

【问题讨论】:

    标签: ios swift uitableview gif animated-gif


    【解决方案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 weak var imageView: FLAnimatedImageView!

    【讨论】:

    • 感谢您的回复,现在唯一的问题似乎是您的代码ImageView.animatedImage = animGIFImage的最后一部分,这给了我一个错误:表达式不允许在顶层和使用未解决标识符ImageView,插座在其他文件中。
    • 所以你需要在你的故事板文件中将你的 imageView 类名定义为 FLAnimatedImageView 并且你的出口应该是这样的 @IBOutlet weak var imageView: FLAnimatedImageView!
    【解决方案2】:

    如果有人正在寻找解决方案(Swift 4)。

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

    【讨论】:

      猜你喜欢
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 2013-08-04
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多