【发布时间】: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 而不是表格视图单元格或类似的东西。
标签: swift xcode ios8 alamofire alamofireimage