试用Swift3,Alamofire和AlamofireImage。我试图在桌面视图中显示一些Instagram图像。我有一个data.json
文件的地方使用检索Alamofire其看起来像这样:检索并显示来自URL的多个图像
{
"places" : [
{ "name" : "place1", "url" : "http://instagramImage1.jpg" },
{ "name" : "place2", "url" : "http://instagramImage2.jpg" },
{ "name" : "place3", "url" : "http://instagramImage3.jpg" },
]
}
我有安装PlaceTableViewCell
与UIImageView
并将其附接至在相应的控制器的出口。
我也有一个PlaceTableViewController
,其中包括:
var places = [Place]() //empty array to store places
在viewDidLoad()
方法我称之为私有函数:
loadJson()
和功能如下:
private func loadJson() {
Alamofire.request("https://example.com/data.json").responseJSON { response in
if let JSON = response.result.value as? [String : Any],
let places = JSON["places"] as? [[String : String]] {
for place in places {
//should I call loadImage() function here?
}
}
}
}
我对于JSON文件中的每个位置也有一个模型:
import UIKit
class Place {
var name: String
var url: String
init?(name: String, url: String) {
self.name = name
self.url = url
}
}
问题
我不知道在哪里可以从这里走。我想使用AlamofireImage(我已经包含在我的项目中)下载每个图像,但是我可以在某种循环中执行此操作吗?我还想将每个图像显示在新的表格行中。任何建议和代码示例将不胜感激。
在该行的每个单元格中,使用AlamofireImage加载图像。如果你在'loadJSON()'中执行它,你将预取所有的图像,这是真的,但如果用户不滚动查看它们中的每一个,你将预取任何东西。 – Larme