无法在Swift中的UIImageView中显示*.gif文件

6

我有一个*.gif文件,想在UIImageView中显示。我尝试了库FLAnimatedImage,下面是代码。结果只是一张静态图片。

class LoginVC: UIViewController, UITextFieldDelegate {

    @IBOutlet weak var img_popup: FLAnimatedImageView!

    var img_popupraw: FLAnimatedImage = FLAnimatedImage(animatedGIFData: NSData(contentsOfFile: "ShitTalk_LoadingAnimation.gif"))

    override func viewDidLoad() {
        img_popup.animatedImage = img_popupraw
    }
}

我希望能找到其他方法直接从gif文件中显示动画。我的开发语言是Swift。


你可以使用这个库 https://github.com/Flipboard/FLAnimatedImage - Badal Shah
3个回答

12

我强烈建议你使用SwiftGif

在您的项目中导入Gif.swift并执行以下操作:

// Returns an animated UIImage
let jeremyGif = UIImage.gifWithName("jeremy")

// Use the UIImage in your UIImageView
let imageView = UIImageView(image: jeremyGif)

或者您可以查看这个链接:https://dev59.com/KIHba4cB1Zd3GeqPMhUi。 - Barat Semet

1

在我的情况下,我使用SDWebImage来管理应用程序中的所有图像。它甚至具有sd_animatedGIFNamed函数。

安装pod 'SDWebImage'


0
//
//  ViewController.swift
//  Loader
//
//  Created by Pawan Kumar on 28/09/17.
//  Copyright © 2017 Pawan Kumar. All rights reserved.
//

import UIKit
import FLAnimatedImage

class ViewController: UIViewController {

    @IBOutlet weak var animatedImageView: FLAnimatedImageView!
//  @IBOutlet weak var checkImageView: FLAnimatedImageView!
    override func viewDidLoad() {
        super.viewDidLoad()


        let url  = Bundle.main.path(forResource: "Loader", ofType: "gif")
        print(url!)

        let data=NSData(contentsOfFile: url!)
        //print(data)
        let fff=FLAnimatedImage(gifData: data as Data?)
        let imageView=FLAnimatedImageView()
        imageView.animatedImage=fff
//
//        imageView.frame=CGRect(x: animatedImageView.frame.minX, y: animatedImageView.frame.minY, width: animatedImageView.frame.width, height: animatedImageView.frame.height)


         imageView.frame=CGRect(x: animatedImageView.frame.minX, y: animatedImageView.frame.minY, width: animatedImageView.frame.width, height: animatedImageView.frame.height)

        print(imageView.currentFrameIndex)
        imageView.clipsToBounds=true
        self.view.addSubview(imageView)

        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }




}

在上面的代码中创建一个视图控制器。 注意:在story board中创建imageview时,将image view的类设置为FLanimatedImageView。
它会起作用。
这里的Loader.gif是GIF图像。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接