【发布时间】:2017-04-18 11:40:38
【问题描述】:
使用 Swift3、Alamofire 和 AlamofireImage 进行实验。我正在尝试在表格视图中显示一些 Instagram 图像。我有一个使用 Alamofire 检索到的 Places 的data.json 文件,如下所示:
{
"places" : [
{ "name" : "place1", "url" : "http://instagramImage1.jpg" },
{ "name" : "place2", "url" : "http://instagramImage2.jpg" },
{ "name" : "place3", "url" : "http://instagramImage3.jpg" },
]
}
我已经用UIImageView 设置了PlaceTableViewCell,并将它连接到相应控制器的插座上。
我还有一个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()中执行此操作,您将预取所有图像,这是真的,但如果用户不滚动查看每张图像,您将一无所获。
标签: swift xcode xcode8 alamofire alamofireimage