2010-04-09 8 views
12

Ich versuche, die Bezeichnung backgroundColor meiner UITableViewCells setzen und es tut überhaupt nichts. Ich frage mich, ob es eine andere Möglichkeit gibt, das zu tun, also frage ich!textLabel.backgroundColor auf UITableViewCell funktioniert nicht

Ich versuchte dies:

cell.textLabel.backgroundColor = [UIColor redColor]; 
cell.backgroundColor = [UIColor redColor]; 

Und es funktioniert nicht, etwas anderes?

Danke!

Antwort

41

Ich nehme an, Sie versuchen dies in CellForRowAtIndexPath.

Nach dem UITableViewCell class reference:

Hinweis: Wenn Sie die Hintergrundfarbe einer Zelle ändern wollen (durch die Hintergrundfarbe einer Zelle über die background Eigenschaft erklärt von UIView Einstellung) Sie muss es in der tableView: WillDisplayCell: forRowAtIndexPath: Methode des Delegierten und nicht in tableView: cellForRowAtIndexPath: von die Datenquelle.

dies also tun:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    cell.backgroundColor = [UIColor redColor]; //must do here in willDisplayCell 
    cell.textLabel.backgroundColor = [UIColor redColor]; //must do here in willDisplayCell 
    cell.textLabel.textColor = [UIColor yellowColor]; //can do here OR in cellForRowAtIndexPath 
} 

Wenn Sie eine feinere Kontrolle über die Zelle Anzeige benötigen, ist eine einfache Möglichkeit, es in IB zu entwerfen und sie von der Spitze in cellForRowAtIndexPath laden. Weitere Informationen finden Sie im Abschnitt "Laden benutzerdefinierter Tabelle - Anzeigen von Zellen aus Nib-Dateien" unter this page im Tabellensicht-Programmierhandbuch.

+1

Super, suchte überall nach diesem. Vielen Dank –

0

Update für IOS 9.3. Dies funktioniert tatsächlich in CellForRowAtIndexPath mit IOS 9.3. Hinweis: Um die Farbe der gesamten Zelle zu ändern, verwenden Sie:

cell.contentView.backgroundColor = [UIColor redColor];

Verwandte Themen