2013-04-05 3 views
16

Ich erstellte eine Sammlung Ansicht sehr einfach zu einer Apple-Sammlung anzeigen Beispielprojekt. Ich habe eine Sammlungsansicht in einem Ansichtscontroller im Storyboard und setze eine Beschriftung in der Sammlungsansichtszelle im oberen rechten Teil der Sammlungsansicht. Ich habe das an das IBOutlet in meiner benutzerdefinierten Zelle angeschlossen. Hier ist der relevante Code:UILabel in benutzerdefinierten UICollectionViewCell immer Null, kann den Text nicht aktualisieren

- (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; 
} 

Ich habe einen Haltepunkt nach dem segmentTitle.text Teil und segmentTitle ist immer null. Dementsprechend sehe ich im Simulator leere weiße Kästchen. Was habe ich verpasst?

Antwort

41

UICollectionViewCell in StoryBoard müssen nicht registrierenClass, nur wählen WiederverwendungIdentifier in StoryBoard. Löschen Sie diese Zeile:

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

Und stellen Sie sicher, dass Sie richtig anschließen:

-Select Klasse Art von UICollectionViewCell in der Storyboard-

-Drag UILabel in Zelle Zelle und Haken bis Cell.h

-Art die Wiederverwendung Kennung

+5

Entfernung der Registerzeile und die Wiederverwendung Identifikator aus Storyboard behoben. Vielen Dank! – brodney

+2

Das funktioniert. Manchmal gibt es einfach zu viel Magie im Storyboard. –

+0

Sorry, was meinst du mit -Type die Wiederverwendungs-ID? Ich löschte die erste Zeile, aber ich kann nichts sehen (hat die anderen Schritte) – Signo

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

ich entferne d diese Zeile von meinem Code jetzt funktioniert es gut ...