2013-04-02 20 views
5

Mam UICollectionView, który jest wyświetlany przez kliknięcie komórki tabeli w kontrolerze nawigacyjnym. Tak więc UICollectionView jest drugim ekranem na stosie kontrolera nawigacyjnego.Podklasa UICollectionViewCell Nie wyświetlająca się

Komórki wyglądały dobrze w widoku kolekcji po zarejestrowaniu stalówki i utworzeniu komórki za pomocą klasy UICollectionViewCell. Ale gdy próbuję utworzyć podklasę dla komórki, widok kolekcji pojawia się tylko jako czarny ekran. Mój projekt można znaleźć tutaj. Link to Project in Dropbox

Aby podklasy UICollectionViewCell, zrobiłem co następuje:

  • Utworzono .h i pliki .m dla podklasy UICollectionViewCell. Przywoływano tę niestandardową klasę na kontrolerze atrybutów stalówki.

enter image description here

  • zarejestrował niestandardowej klasy z komórki identyfikatora ponownego użycia, w ciągu viewDidLoad kontrolera widoku, który wyświetla widok zbiórki.

    [self.collectionView registerClass:[CustomCollectionViewCell class] forCellWithReuseIdentifier:@"cvCell"]; 
    
  • utworzono instancję niestandardowej w komórce "CollectionView: cellForItemAtIndexPath:"

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

Z tego co czytałem, że powinien to zrobić! Ale widok kolekcji jest pusty, czy ktoś może pomóc?

Odpowiedz

6

Sprawdziłem twój kod. Zrobiłeś doskonale. Widok kolekcji z komórkami wyświetla się poprawnie, ale nie widzisz tego, ponieważ nie ustawiasz żadnej właściwości komórki. Wystarczy sprawdzić poprzez ustawienie koloru tła komórki w cellForItem

cell.backgroundColor = [UIColor redColor]; 

Jeśli zrobiłeś wszystko w stalówki to trzeba zarejestrować stalówkę zamiast klasy. użyj registerNib zamiast registerClass. Jeśli rejestrujesz zajęcia, musisz zrobić wszystko programowo.

+1

Dziękujemy! Jestem jednak bardzo zaskoczony, że zawartość końcówki wydaje się być całkowicie zignorowana po podklasowaniu UICollectionViewCell. Już miałem tło ustawione na biały (w Interface Builder). Po prostu umieszczam obrazek w komórce (z obrazkiem w IB) i nie pojawia się on. Czy wszystkie treści z podklasy UICollectionViewCell muszą być dodane programowo? Dlaczego ignoruje to, co jest w stalówce? –

+9

Jeśli skończysz wszystko w stalówce, musisz zarejestrować stalówkę zamiast klasy. użyj __registerNib__ zamiast __registerClass__, aby zarejestrować komórkę. Jeśli rejestrujesz zajęcia, musisz wszystko programowo ... :) –

+0

Tak, działa tak, jak opisałeś. Zarejestrowałem stalówkę zamiast klasy i pojawiła się stalówka. Dziękuję za Twoją pomoc! –

Powiązane problemy