Swift3, Alamofire 및 AlamofireImage로 실험합니다. 일부 Instagram 이미지를 tableview에 표시하려고합니다. I는 다음과 같이 Alamofire를 사용하여 검색 장소의 data.json
파일이 있습니다URL에서 여러 이미지 검색 및 표시
{
"places" : [
{ "name" : "place1", "url" : "http://instagramImage1.jpg" },
{ "name" : "place2", "url" : "http://instagramImage2.jpg" },
{ "name" : "place3", "url" : "http://instagramImage3.jpg" },
]
}
내가 가진 설치 PlaceTableViewCell
UIImageView
과 및 해당 컨트롤러의 콘센트에 연결.
는 또한이 포함 이는 PlaceTableViewController
: I 전용 함수 호출
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?
}
}
}
}
I 또한 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