У меня есть представление коллекции, которое загружает данные из API. Collection View отлично работает, за исключением того, что он загружает только изображения на прокрутке. Я пробовал загружать изображения async, и это делает минимальную разницу. Я хочу, чтобы все изображения загружались или предварительно загружали изображение до загрузки изображения? Я использую Haneke для загрузки изображений с URL-адреса. Вот код, я использую в моей точки зрения коллекции:Collection View Loads Choppy
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.tableData.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell: ProductsViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("productViewCell", forIndexPath: indexPath) as! ProductsViewCell
let rowData = tableData[indexPath.row]
cell.backgroundColor = UIColor.whiteColor()
for (key,value) in rowData {
cell.productPrice.text = value["merged"][0]["variants"][0]["price"].string
cell.productName.text = value["merged"][0]["title"].string
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
if let imageString = value["merged"][0]["images"][0]["src"].string {
let url = NSURL(string: imageString)
dispatch_async(dispatch_get_main_queue(), {
cell.productImage.contentMode = .ScaleAspectFill
cell.productImage.hnk_setImageFromURL(url!)
})
}
})
if let variantData = value["merged"][0]["variants"].array {
var sum = 0
for variant in variantData {
sum += variant["inventory_quantity"].int!
}
if sum <= 0 {
cell.soldOut.hidden = false
} else {
cell.soldOut.hidden = true
}
}
}
return cell
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
print("Cell \(indexPath.row) selected")
}