2016-04-21 3 views
0

In meiner App zeige ich einen Kalender an, und ich verwende eine Sammlungsansicht, um die Beschriftungen für die Wochentage anzuzeigen. Aus irgendeinem Grund zeigen alle Labels weiterhin die Standardbezeichnung "Label" an, wenn ich die App starte. Ich habe mir eine ähnliche Frage angesehen, aber es hat nicht geholfen. Irgendwelche Vorschläge? Hier ist der Code für die UICollectionViewCell:Beschriftung in UICollectionViewCell nicht aktualisiert

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { 
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CalendarTitleCellIdentifier forIndexPath:indexPath]; 
    UILabel *label = (UILabel *)[cell viewWithTag:1]; 
    label = [[UILabel alloc] init]; 
    CGSize size = [self collectionView:collectionView layout:collectionView.collectionViewLayout sizeForItemAtIndexPath:indexPath]; 
    label.frame = CGRectMake(0, 0, size.width, size.height); 
    NSString *title = [[NSString alloc] initWithFormat:@"%@",self.weektitles[indexPath.row]]; 
    label.text = title; 
    NSLog(@"%@", label.text); 
    return cell; 
} 

FYI, ich habe ein tatsächliches Etikett im Storyboard (in der Sammlung Ansicht Zelle).

+0

try UILabel * label = (UILabel *) [Zelle. contentView viewWithTag: 1]; – iOS

Antwort

2

Da Sie einen neuen UILabel-Punkt label.so Sie label.text nicht Zelle label.text bearbeiten.

löschen

label = [[UILabel alloc] init] 
0
  1. einen Namen es UICollectionViewCell erstellen zum Beispiel DayCell mit Immobilien

    @property (schwach, nonatomic) IBOutlet UILabel * lblName;

  2. Im Storyboard Änderung der Zelle Klasse von UICollectionViewCell zu DayCell auch Set Identifier als "daycell" jetzt binden das Label lblName auf dem Etikett im Storyboard

  3. und stellen Sie die cellForItemAtIndexPath Methode

    - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ 
    static NSString *identifier = @"daycell"; 
    
    DayCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath]; 
    
    
        [cell.lblName setText:@"XYZ"]; 
    
    
    return cell; 
    } 
    

Stellen Sie sicher, dass Sie den Delegaten und die Datenquelle für die Sammlungsansicht ordnungsgemäß festgelegt haben.

0

Beide Codezeilen zurückgeben ein UILabel:

UILabel *label = (UILabel *)[cell viewWithTag:1]; 
label = [[UILabel alloc] init]; 

Letztere ein Etikett neu erstellt und es gehört nicht zu UICollectionViewCell mehr

+0

@NickLH, du scheinst ein 'After-Label in der letzten Zeile entfernt zu haben, das den Inhalt dieses Posts irgendwie negativ beeinflusst hat – NSNoob

+0

Es scheint, dass es in deinem Edit kommt, da ich nur" line "in" lines "änderte, aber ich reparierte es jetzt. – NickLH