如何在swift中下载GIF图像

Ant*_*hos 3 ios swift

我正在开发一些tumblr客户端.我想在仪表板中下载所有照片并将其保存到documentDirectory.其中一些是jpg,有些是gif.我已经使用以下代码成功下载了jpg图像:

do {
        let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
        let fileURL = documentsURL.appendingPathComponent(fname)
        if let pngImageData = UIImagePNGRepresentation(myImage!) {
            try pngImageData.write(to: fileURL, options: .atomic)
            print(fname + " - saved")
        }
    } catch {print(fname + " - not saved") }
Run Code Online (Sandbox Code Playgroud)

myImage是从URL下载的图像.此代码适用于jpg图像但不适合GIF.

最后我用这个读了这些文件:

let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
    let filePath = documentsURL.appendingPathComponent(fname).path
    if FileManager.default.fileExists(atPath: filePath) {
        return UIImage(contentsOfFile: filePath)!
    }
Run Code Online (Sandbox Code Playgroud)

它适用于jpg,但不适用于GIF.当我在GIF图像上尝试这种写/读代码时,我得到的图像不是动画.

你能告诉我一个例子的方式会很棒吗?

谢谢.

esh*_*ima 5

我个人使用这个小工具用于GIF.只需将iOSDevCenters + GIF.swift文件直接添加到您的项目中并使用它,如下所示

1.在线URL

    let imageURL = UIImage.gifImageWithURL(gifURL)
    let yourImageView = UIImageView(image: imageURL)
Run Code Online (Sandbox Code Playgroud)

2.本地文件名

    let imageName = UIImage.gifImageWithName(imageName)
    let yourImageView = UIImageView(image: imageName)
Run Code Online (Sandbox Code Playgroud)

3.使用数据

    let imageData = NSData(contentsOf: Bundle.main.url(forResource: "name", withExtension: ".gif"))
    let imageData = UIImage.gifImageWithData(imageData)
    let yourImageView = UIImageView(image: imageData)
Run Code Online (Sandbox Code Playgroud)