2013-04-02 67 views
5

我有一個UICollectionView,通過單擊導航控制器中的表格單元格來顯示。所以UICollectionView是導航控制器堆棧中的第二個屏幕。UICollectionViewCell的子類不顯示

當我註冊一個筆尖並通過UICollectionViewCell類創建了單元格時,單元格在集合視圖中顯示得很好。但是,一旦我嘗試爲單元格創建子類,集合視圖就會顯示爲黑屏。我的項目可以在這裏找到。 Link to Project in Dropbox

要繼承UICollectionViewCell,我做了以下內容:

  • 創建h和.m文件爲UICollectionViewCell的子類。在筆尖的屬性檢查器上引用此自定義類。

enter image description here

  • 註冊的自定義類與小區的重用標識符,內顯示的集合視圖的視圖控制器viewDidLoad中。

    [self.collectionView registerClass:[CustomCollectionViewCell class] forCellWithReuseIdentifier:@"cvCell"]; 
    
  • 創建的自定義單元格的一個實例中 「的CollectionView:cellForItemAtIndexPath:」

    CustomCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cvCell" forIndexPath:indexPath]; 
    

從我讀過的東西,應該這樣做!但收集視圖顯示空白,任何人都可以幫忙?

回答

6

我檢查了你的代碼。你做得很完美。單元格的集合視圖顯示正確,但由於您未設置單元格的任何屬性,因此看不到該單元格。只需通過設置單元格的背景色cellForItem

cell.backgroundColor = [UIColor redColor]; 

檢查如果完成在筆尖,那麼你需要註冊筆尖,而不是課堂上的一切。使用registerNib而不是registerClass。如果您正在註冊課程,您必須以編程方式完成所有任務。

+1

謝謝!我很驚訝,雖然在繼承UICollectionViewCell後,nib的內容似乎完全被忽略了。我已經將背景設置爲白色(在Interface Builder中)。我也只是在單元格中放置一個圖像(在IB中有一個imageView),並且它不顯示。是否需要以編程方式添加子類UICollectionViewCell的所有內容?爲什麼它忽略了筆尖中的內容? –

+9

如果你已經完成了筆尖的所有工作,那麼你需要註冊筆尖而不是班級。使用__registerNib__而不是__registerClass__來註冊單元格。如果你正在註冊課程,你必須以編程方式編程...... :) –

+0

是的,正如你所描述的那樣工作。我註冊了筆尖而不是班級,筆尖出現了。感謝您在這裏提供您的幫助! –

相關問題