我有一個自定義單元格繼承UICollectionViewCell
一個UICollectionView
。而在代碼中,我做了以下:dequeueReusableCellWithIdentifier不重複使用細胞
[self.collectionView_ registerClass:[AHPinterestCell class]
forCellWithReuseIdentifier:@"AHPinterestCell"];
這就是那張在我cellForItem
AHPinterestCell *cell =
(AHPinterestCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"AHPinterestCell"
forIndexPath:indexPath];
但是,似乎這不是重複使用的單元格。在每個屏幕我的集合視圖它顯示約9-10細胞,但是當我做無限滾動,然後我把它insertItemsAtIndexPath
調用我的自定義單元格的initWithFrame
方法,雖然它也許應該重用我已經有細胞。爲什麼是這樣?
編輯:
我加入這說明該問題的示例演示項目,鏈接到Xcode項目可以發現here。當你到達底部時,它本質上是做一個無限的滾動,它只是附加更多的東西。但是當你這樣做的時候,它會再次調用init方法。
@Rob我在viewDidLoad中 – adit
調用的registerClass @Sang它應該只是初始化像10,然後休息,當我向下滾動,它應該不會再因爲它重用的內容我已經有 – adit
@Sang如何確保你它調用的init會在可見時啓動?所以在我的情況下,我有一個UICOllectionView,其中有100個單元格,但是一次顯示10個單元格。所以我假設只有10個init會被調用,剩下的將會被重用 – adit