Özel bir UIViewController oluşturdum ve bunu uygulamak için genişletilmiş: UICollectionViewDataSource, UICollectionViewDelegate. Hikaye panosunda UICollectionView ekledim ve denetleyicimden bu UICollectionView'a referans veriyorum (ve veri kaynağı ve koleksiyon görüntüleme temsilcisi için delegeleri kurun).UICollectionView Özel UIViewController ile Güncellenmedi
Açıkçası bu 2 delege için minimum gereksinimleri uygulamıştım. Şimdi, bazen eşzamansız görüntüleri yüklediğimden, görüntü yüklemesi tamamlandıktan sonra cell.setNeedsLayout(), cell.layoutIfNeeded(), cell.setNeedsDisplay() yöntemlerini çağırıyorum (cell.imageView.image = UIImage (...)). Bütün bu yöntemlerin çağrıldığını biliyorum. Ancak, ekrandaki görüntüler güncellenmedi.
Bir şey mi özledim? Teşekkür ederim!
Düzenleme: - güncelleme denirdi nasıl - Örnek kodu ekleyin
func collectionView(collectionView: UICollectionView,
cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
{
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! MyCollectionViewCell
....
let cellImage = ServiceFacade.sharedInstance.getImageFromCaching(image!.url)
if cellImage == nil {
// set image to default image.
cell.cellImage.image = UIImage(named: "dummy")
ServiceFacade.sharedInstance.getImage(image!.url, completion: { (dImage, dError) in
if dError != nil {
...
}
else if dImage != nil {
dispatch_async(dispatch_get_main_queue(),{
let thisCell = self.collectionView.dequeueReusableCellWithReuseIdentifier(self.reuseIdentifier, forIndexPath: indexPath) as! MyCollectionViewCell
thisCell.cellImage.image = dImage
thisCell.setNeedsLayout()
thisCell.setNeedsDisplay()
thisCell.layoutIfNeeded()
})
}
else{
// do nothing
}
})
}
else {
cell.cellImage.image = cellImage!
cell.setNeedsDisplay()
}
// Configure the cell
return cell
}
Resmi ana parçacığa indirdikten sonra mı ayarlıyorsunuz? İndirme tamamlandığında hücre sıfır olabilir. – Yan
Yan'ı indirip ayarladığınızda, kodun bir kısmını gönderebilirseniz, bana baktığınız için teşekkür ederiz. Hücre güncellemesini çağırdığım kod İşte. Ama çalışmadı. –