我有一个具有3个视图的应用程序,其中2个是tableViews(列表),在第三个视图上,我尝试通过传递数据(文本和gifs)加载gif,列表中的每个项目都不相同。
我发现了一个扩展名为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!