【发布时间】:2022-01-24 20:43:18
【问题描述】:
我有一个带有 GIF 横幅 URL 的字符串,我需要将其放入应用程序中。
我的代码:
func showAdd(){
Request.get("http://www.kyst.no/api/?apiMode=advertisement&lang=no", { (error: NSError?, data: NSData, text: NSString?) -> () in
let jsonResult: Dictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as Dictionary<String, AnyObject>
var banner : NSString = jsonResult["advertisement"]!["banner"] as NSString
self.addViewImage.image = UIImage.animatedImageNamed(banner, duration: 1)
})
}
但是什么也没发生。请帮忙。
【问题讨论】:
-
animatedImageNamed()不会像您认为的那样做。该方法是加载一系列静态图像的快捷方式,这些图像命名为image0、image 1、image2等,并将它们设置为animationImages数组。它不会像 GIF 那样加载动画图像。这个问题之前有人问过,有几个答案:stackoverflow.com/questions/9744682/display-animated-gif-in-ios——考虑到它不是 Swift,但将答案应用于 Swift 应该不难。 -
如果您不想在上面链接的答案中使用开源 ObjC 代码,那么基本要点是您需要解码 gif 文件以提取各个帧,然后传递那些框架图像到图像视图的
animationImages属性。 -
我也试过expertland.net/question/a6bc48r3n7t5251n4v1p7l4n5u50jp6s9/… 但我卡住了: var testImage = UIImage.animatedImageWithAnimatedGIFData(NSData.dataWithContentsOfURL(url)) 'dataWithContentsOfURL' 不可用:使用对象构造 'NSData(contentsOfURL: )'
标签: ios swift uiimageview uiviewanimation