Добрый день!
Я загружаю данные с сайт в UICollectionView. При этом текстовые данные нормально отображаются, но вот картинки странно прыгают из ячейки в ячейку, то есть пока новая грузится, то старая как бы вместо нее, это именно происходит, если ячеек много, например штук 20, и когда листаешь до 10ой, то там изображения из верхних ячеек, пока новая не загрузится.
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell: ProductCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("collectionCell", forIndexPath: indexPath) as! ProductCollectionViewCell
cell.layer.borderColor = UIColor(red: 245 / 255, green: 245 / 255, blue: 245 / 255, alpha: 1).CGColor
cell.layer.borderWidth = 0.5
cell.backgroundColor = UIColor.whiteColor()
cell.productTitle.text = productsTitle[indexPath.row]
cell.productCost.text = productsCost[indexPath.row] + " грн."
cell.productImage.image = nil
cell.imageLoader.startAnimating()
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
if self.cachedPhotos[indexPath.row] == nil {
let imageThumbString = self.productsPhotos[indexPath.row]
let imageUrl = NSURL(string: imageThumbString)
let imageData = NSData(contentsOfURL: imageUrl!)
dispatch_async(dispatch_get_main_queue(), {
if(imageData != nil){
cell.productImage.image = UIImage(data: imageData!)
self.cachedPhotos[indexPath.row] = UIImage(data: imageData!)
cell.imageLoader.stopAnimating()
cell.imageLoader.hidden = true
}
});
} else {
cell.productImage.image = self.cachedPhotos[indexPath.row]
}
});
return cell
}