2013-04-02 12 views
5

ナビゲーションコントローラ内のテーブルセルをクリックして表示されるUICollectionViewがあります。したがって、UICollectionViewは、ナビゲーションコントローラのスタックの2番目の画面です。UICollectionViewCellのサブクラスが表示されない

NIBを登録してUICollectionViewCellクラスを介してセルを作成すると、コレクションビューでセルが正常に表示されました。しかし、一度セルのサブクラスを作成しようとすると、コレクションビューは黒い画面として表示されます。私のプロジェクトはここで見つけることができます。 Link to Project in Dropbox

UICollectionViewCellをサブクラスに、私は次のようでした:

  • UICollectionViewCellのサブクラスのための.hと.mファイルのファイルを作成しました。ペン先の属性インスペクタでこのカスタムクラスを参照しました。

enter image description here

  • コレクションビューを表示するビューコントローラの内のviewDidLoad、セルの再利用識別子にカスタムクラスを登録し。 ":cellForItemAtIndexPath:collectionView" 私は何を読んでから、

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

、それを行う必要があるのカスタムセルのインスタンスを作成し

[self.collectionView registerClass:[CustomCollectionViewCell class] forCellWithReuseIdentifier:@"cvCell"]; 
  • !しかし、コレクションビューは空白を表示している、誰も助けることができますか?

  • 答えて

    6

    コードを確認しました。あなたは完全にやった。セルを含むコレクションビューは正しく表示されていますが、セルのプロパティを設定していないため表示できません。ちょうどあなたがペン先のすべてを行っている場合は、あなたではなく、クラスのペン先を登録する必要がありcellForItem

    cell.backgroundColor = [UIColor redColor]; 
    

    でセルの背景色を設定することで確認してください。 registerClassの代わりにregisterNibを使用してください。クラスを登録する場合、プログラムですべてを行う必要があります。

    +1

    ありがとうございました! UICollectionViewCellをサブクラス化した後、ペン先の内容が完全に無視されているように見えますが、私は非常に驚いています。私はすでにバックグラウンドを白に設定していました(Interface Builderで)。私はちょうど(IBのimageViewで)画像をセルに入れても表示されません。サブクラス化されたUICollectionViewCellのすべてのコンテンツをプログラムで追加する必要がありますか?なぜそれはペン先にあるものを無視するのですか? –

    +9

    nibですべてを終えたら、クラスの代わりにnibを登録する必要があります。セルを登録するには、__registerClass__の代わりに__registerNib__を使用します。あなたがクラスを登録している場合は、プログラムですべてをする必要があります... :) –

    +0

    うん、あなたの説明どおりに動作します。私はクラスの代わりにペン先を登録してペン先が現れました。ここにあなたの助けをありがとう! –

    関連する問題