使用FLAnimatedImage的示例或演示SWIFT代码

时间:2015-10-19 14:50:08

标签: ios swift gif animated-gif

我试图将FLAnimatedImage合并到基于Swift的iOS应用程序中,以显示动画GIF。

我开始导入FLAnimatedImage.hFLAnimatedImageView.m个文件并创建了Bridging-Header.h,没有问题。

我尝试使用以下代码将Gif加载到我的ImageView中:

@IBOutlet weak var animatedImageView: FLAnimatedImageView! = animatedImageView.animatedImage = FLAnimatedImage(animatedGIFData: NSData(contentsOfFile: "chicken.gif")) `  

但它在应用程序启动时失败并出现以下错误代码:

  

exception' NSInvalidArgumentException',原因:' - [UIImageView setAnimatedImage:]:无法识别的选择器发送到实例0x78e3c820'

有关如何解决上述错误的任何建议吗?

感谢您的帮助。

4 个答案:

答案 0 :(得分:8)

import UIKit
class ViewController: UIViewController {
@IBOutlet weak var gifView: FLAnimatedImageView!
override func viewDidLoad() {
  super.viewDidLoad()
  print("\(gifView)")
  if let path =  NSBundle.mainBundle().pathForResource("rock", ofType: "gif") {
    if let data = NSData(contentsOfFile: path) {
      let gif = FLAnimatedImage(animatedGIFData: data)
      gifView.animatedImage = gif
    }
  }
}
}

顺便问一下,你是否在FLAnimatedImageView的故事板中制作了animatedImageView

答案 1 :(得分:2)

迅速4: Gif网址示例

@IBOutlet weak var gifImageView: FLAnimatedImageView!

private func showGifImage(url: URL) {
    DispatchQueue.global().async { [weak self] in
        do {
            let gifData = try Data(contentsOf: url)
            DispatchQueue.main.async {
                self?.gifImageView.animatedImage = FLAnimatedImage(gifData: gifData)
            }
        } catch {
            print(error)
        }
    }
}

答案 2 :(得分:0)

雨燕5:gif资产解决方案

extension FLAnimatedImage {
  convenience init (gifResource: String) {
    if let bundleURL = Bundle.main.url(forResource: gifResource, withExtension: "gif"),
        let imageData = try? Data(contentsOf: bundleURL) {
        self.init(animatedGIFData: imageData)
    }
    else { 
        self.init(animatedGIFData: nil)
    }
}

}

不确定这是否是最好的解决方案,但对我有用,请随时评论建议。

答案 3 :(得分:-1)

我让它使用以下扩展名:

('/mail-me', My_Email_Class)


宣言:

localhost:8080/mail-me


呼叫:

extension FLAnimatedImage {
    convenience init(gifResource: String) {
        self.init(animatedGIFData: NSData(contentsOfFile:     NSBundle.mainBundle().pathForResource(gifResource, ofType: "")!))
    }
}

在故事板中,UIImageView有一个自定义子类:@IBOutlet weak var animatedImageView: FLAnimatedImageView!