2016-01-23 54 views
0

我有4周的UIImageViews內UICollectionview。這些用於顯示單元格上的特定圖標。不幸的是,當我有一個單元格填充所有4個圖像視圖並且圖像正常工作時。但是,當一個單元格應該只顯示少於4個項目時,它有時(並不總是)顯示額外的圖標。它似乎來自其他(之前)的單元格。就像它沒有正確回收。的UIImageViews中的CollectionView不回收正確

這是我的代碼。我有一個存儲所有圖像的插座。

@IBOutlet var savings: [UIImageView]! 

接下來我在我的單元視圖控制器中有一個方法,該方法根據給定的圖標名稱數組進行填充。

func setPropositions(propositions: [SupplierProposition]) 
{ 
    for (index, item) in propositions.enumerate() { 
     if index < 4 { 
      savings[index].image = nil 
      savings[index].setNeedsDisplay() 
      if let image = UIImage(named: item.iconName!) { 
       savings[index].image = image 
      } else { 
       savings[index].image = nil 
      } 
     } 
    } 
} 

正如你所看到的,我盡力確保imageviews在渲染之前是空的,但它不起作用。任何知道我可能會做錯的人?

+0

當調試這樣的東西時,它可能是有用的硬編碼一些單元格。例如,第一個單元被硬編碼以具有一些圖像,並且第一個重用單元被硬編碼爲根本沒有。然後你可以消除數據源錯誤。 –

回答

0

像它不回收正確

號這就像你不回收正確。這是你的工作,在cellForItemAtIndexPath:,以完全配置該小區。這個單元格可能已經被使用過了,所以它可能已經有了你之前放置在那裏的圖像視圖;並且如果指數路徑應該有較少的圖像視圖的細胞,它是你的工作刪除你不想要的人。