2014-10-09 60 views
0

什麼是真正發生在這些線路上不是唯一的細胞cellForItemAtIndexPath:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 

    MenuCollectionViewCell *cell = (MenuCollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier 
                            forIndexPath:indexPath]; 

專門的細胞系?

據我所知,當我滾動顯示不可見的新單元格的集合視圖並隱藏可見的單元格時,iOS將重用單元格出現在屏幕外的單元格以繪製新單元格, ?

問題是這樣的:如果我根據indexPath自定義一個特定的單元格,我將有幾次重複的定製。例如,如果我將一個單元格的標籤設置爲紅色,那麼只要我滾動收集視圖並將該單元格出列並重用,就會有很多帶有紅色標籤的單元格。

我該如何防止這種情況發生?

回答

3

重寫[UICollectionViewCell prepareForReuse]並重置該方法中的所有自定義設置。

+0

只是乙R I L L I A NT·!!!!!!!!!!! – SpaceDog 2014-10-09 14:42:20

1

您可以在cellForRowAtIndexPath中清除它們,在爲新的indexPath配置單元格之前,或者如果您有UITableViewCell的自定義子類,請覆蓋prepareForReuse方法並在此處將其清除。請參閱Apple doc

編輯 對不起,你正在使用集合視圖而不是表視圖,但同樣適用。

0

prepareForReuse覆蓋重置資源,這將是當調用滾動細胞出幀

的不要忘記調用super方法