我试图将FLAnimatedImage合并到基于Swift的iOS应用程序中,以显示动画GIF。
我开始导入FLAnimatedImage.h
和FLAnimatedImageView.m
个文件并创建了Bridging-Header.h
,没有问题。
我尝试使用以下代码将Gif加载到我的ImageView中:
@IBOutlet weak var animatedImageView: FLAnimatedImageView! = animatedImageView.animatedImage = FLAnimatedImage(animatedGIFData: NSData(contentsOfFile: "chicken.gif")) `
但它在应用程序启动时失败并出现以下错误代码:
exception' NSInvalidArgumentException',原因:' - [UIImageView setAnimatedImage:]:无法识别的选择器发送到实例0x78e3c820'
有关如何解决上述错误的任何建议吗?
感谢您的帮助。
答案 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!