使用 Alamofireimage 从服务器获取图像后,Imageview 未更新
Posted
技术标签:
【中文标题】使用 Alamofireimage 从服务器获取图像后,Imageview 未更新【英文标题】:Imageview isn't updating after fetching an image from a server with Alamofireimage 【发布时间】:2016-08-27 00:00:15 【问题描述】:我一直在做一个项目,该项目需要显示使用 AlamofireImage 从服务器获取的图像。所以我的代码是这样的:
import UIKit
import Alamofire
import AlamofireImage
@IBOutlet var imageView: UIImageView
func downloadImage()
Alamofire.request(.GET, "http://www.axs.gt/wp-content/uploads/2016/05/tuzonapromo_600x.png").responseImage (response) -> Void in
if let image = response.result.value
imageView.image = image
似乎正在下载图像,但 imageView 没有更新从服务器获取的新图像。我必须补充一点,我可以从 HTTP 和 HTTPS 下载,因为所有证券问题都已解决。
我也尝试过这样做
imageView.image = UIImage(named: "someImage")
而且 imageView 仍然没有更新。
非常感谢任何帮助。
【问题讨论】:
你有没有试过把这个 if let 放在 dispatch_async 块中? 我已经这样做了,因为我读到视图中需要更新的所有内容都必须在主线程上,但仍然没有工作。 这些完成块在主线程上。您应该检查response
是.Success
还是.Failure
。你知道请求是否成功吗?但是如果imageView.image = UIImage(named: ...)
不起作用,那么这表明您的图像视图存在更深层次的问题(例如,您必须查看框架并确保它可见?这不在表格视图单元格中,是吗?)。顺便说一句,你有什么理由不只是imageView.af_setImageWithURL(URL)
?如果在表格或集合视图的单元格中执行此操作,请考虑使用占位符图像。
我一直在调试应用程序,我可以确认response
是.Success
。 imgView.image = image
正在执行中。我的 imageView 有一个默认图像,所以我确定它是可见的。而且我尝试使用 imageView.af_setImageWithUrl(URL) 但没有成功,而且我不确定它是如何工作的。它是 UIImageVie 而不是表格视图单元格或类似的东西。
【参考方案1】:
所以我正在验证我的代码流并意识到我试图在 viewDidLoad 方法之前更新我的 imageViews 的图像,该方法调用 super.viewDidLoad()
方法,该方法应该初始化我的视图中的所有内容(又名设置我的 imageView 的默认图像)。所以实际发生的事情是我在编译器设置默认图像之前获取图像。
感谢您的帮助。
【讨论】:
以上是关于使用 Alamofireimage 从服务器获取图像后,Imageview 未更新的主要内容,如果未能解决你的问题,请参考以下文章
Swift:将数据从 tableView 显示到另一个 ViewController(JSON、Alamorife、AlamofireImage)
使用 AlamoFireImage 在 CollectionView 中使用 .af_setImage 方法加载数组 url 的致命错误
AlamofireImage addAuthentication 不添加授权标头
如何使用 AlamofireImage 从我的服务器加载 LCR 图像?