2013-04-05 8 views
16

Utworzony widok kolekcji jest bardzo prosty w przypadku przykładowego projektu kolekcji Apple. Mam widok kolekcji w kontrolce widoku w scenorysie i ustawię etykietę wewnątrz komórki widoku kolekcji w prawej górnej części widoku kolekcji. Podłączyłem to do IBOutlet w mojej komórce niestandardowej. Oto odpowiedni kod:UILabel w niestandardowym UICollectionViewCell zawsze ma wartość null, nie można zaktualizować tekstu.

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self.workoutView registerClass:[Cell class] forCellWithReuseIdentifier:@"Cell"]; 
    ... 
} 

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 
    if (collectionView == self.collView) { 
     Cell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];  
     cell.segmentTitle.text = @"some text"; 
     cell.backgroundColor = [UIColor whiteColor]; 
     return cell; 
    } 
    return nil; 
} 

I umieścić punkt przerwania po segmentTitle.text części i segmentTitle zawsze ma wartość null. Zgodnie z tym, co widzę na symulatorze, są puste białe pudełka. Co mnie ominęło?

Odpowiedz

41

UICollectionViewCell inside StoryBoard nie trzeba rejestrowaćClass, wystarczy wybrać ponowne użycie w StoryBoard. Usuń ten wiersz:

// [self.workoutView registerClass:[Cell class] forCellWithReuseIdentifier:@"Cell"]; 

I upewnij się połączyć właściwą drogę:

-Wybierz klasy typu UICollectionViewCell w storyboard do komórki

-Przeciągnij UILabel do komórki i podłączyć do Cell.h

-Type identyfikator ponowne

+5

Usunięcie linii rejestru i użycie identyfikatora ponownego wykorzystania z storyboardu naprawiło to. Dzięki! – brodney

+2

To działa. Czasami w storyboardzie jest zbyt dużo magii. –

+0

Przepraszam, co masz na myśli przez -Type identyfikator ponownego użycia? Usunąłem pierwszą linię, ale nie widzę nic (czy inne kroki) – Signo

2
MainFeedCollectionView.registerClass(CollectionViewCell.self, forCellWithReuseIdentifier: "CollectionViewCell") 

usunąć d tej linii z mojego kodu teraz działa poprawnie ...  

Powiązane problemy