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

mctunoxg  于 2023-10-21  发布在  iOS
关注(0)|答案(4)|浏览(180)

我正试图将FlamimatedImage合并到我的基于Swift的iOS应用程序中,以显示动画GIF。
我开始导入FLAnimatedImage.hFLAnimatedImageView.m文件,并创建了Bridging-Header.h没有问题。
我尝试用以下代码将Gif加载到ImageView中:

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

但它在应用程序启动时失败,并出现以下错误代码:
异常“NSInvalidArgumentException”,原因:'-[UIImageView setAnimatedImage:]:无法识别的选择器已发送到示例0x 78 e3 c820 '
有什么建议可以解决上面的错误吗?
谢谢你的帮助。

6kkfgxo0

6kkfgxo01#

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的吗?

lztngnrs

lztngnrs2#

Swift 4:Gif URL示例

@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)
        }
    }
}
pbpqsu0x

pbpqsu0x3#

Swift 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)
        }
    }
}

不知道这是否是最好的解决方案,但它对我有效,请随时评论建议。

6tr1vspr

6tr1vspr4#

我得到了它的工作与以下扩展:

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

声明:

@IBOutlet weak var animatedImageView: FLAnimatedImageView!

致电:

animatedImageView.animatedImage = FLAnimatedImage(gifResource: "chicken.gif")

在故事板中,UIImageView有一个自定义子类:FLAnimatedImageView

相关问题