使用 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.SuccessimgView.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 图像?

iOS图片[翠鸟|| AlamofireImage]“由于内存问题而终止”

AlamofireImage 没有释放内存