試用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