2013-04-02 2 views
5

У меня есть UICollectionView, который отображается щелчком ячейки таблицы в навигационном контроллере. Таким образом, UICollectionView является вторым экраном в стеке навигационного контроллера.Подкласс UICollectionViewCell не отображается

Ячейки проявили прекрасное изображение в коллекции, когда я зарегистрировал наконечник и создал ячейку с помощью класса UICollectionViewCell. Но как только я попытаюсь создать подкласс для ячейки, представление коллекции просто отображается как черный экран. Мой проект можно найти здесь. Link to Project in Dropbox

Для подкласса UICollectionViewCell, я сделал следующее:

  • Создал .h и .m файлов для подкласса UICollectionViewCell. Справил этот пользовательский класс в инспекторе атрибутов nib.

enter image description here

  • Registered пользовательский класс с идентификатором повторного использования ячейки, в 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. Я уже установил фоновый набор в белый (в Interface Builder). Я также просто помещаю изображение в ячейку (с изображением в IB), и оно не появляется. Нужно ли добавлять все содержимое подкласса UICollectionViewCell программно? Почему он игнорирует то, что находится в носе? –

+9

Если вы сделали все в nib, тогда вам нужно зарегистрировать nib вместо класса. используйте __registerNib__ вместо __registerClass__ для регистрации ячейки. Если вы регистрируетесь в классе, вам нужно все программировать ... :) –

+0

Да, работает так, как вы описали. Я зарегистрировал nib вместо класса, и появился nib. Спасибо, что предложили свою помощь здесь! –

Смежные вопросы