58 votes

pourquoi la couleur d'arrière-plan UITableViewCell ne fonctionne-t-elle pas (définie dans le générateur d'interface)?

Pourquoi ne pas UITableViewCell couleur d'arrière-plan de travail (défini dans interface builder)?

Je note à partir d'une recherche sur google que le jeu de codes dans la sous-classe personnalisée de UITableViewController n'travail (voir ci-dessous):

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    cell.backgroundColor = [UIColor redColor];
}

Mais j'aimerais juste comprendre pourquoi interface builder a un fond de la couleur de la TableViewCell, ce qui ne semble pas fonctionner?

MODIFIER

Double question. Cette question a la réponse.

71voto

chris Points 1999

Il est un peu tard, mais je viens juste de rencontrer ce problème ... Définir la couleur de fond du contentView fonctionne bien:

 cell.contentView.backgroundColor = [UIColor redColor];
 

16voto

Shiprack Points 459

Ce qui a fonctionné pour moi, c’est de créer mon propre objet UIView à définir comme vue d’arrière-plan de UITableViewCell. Dans le cellForRowAtIndexPath:

 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UIView* bgview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
bgview.opaque = YES;
bgview.backgroundColor = [UIColor orangeColor];
[cell setBackgroundView:bgview];
 

11voto

occulus Points 10906

En essayant de régler la couleur de fond de la UITableViewCell lui-même n'est pas la façon dont vous devez être le faire. Une cellule de tableau est une collection de cinq des points de vue utiles, vous pouvez accéder à, dont l'un est backgroundView.

Lecture recommandée:

http://cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html

et puis:

http://cocoawithlove.com/2010/12/uitableview-construction-drawing-and.html

9voto

Subbu Points 876

Vous devez toujours indiquer les modifications pour les cellules dans tableView:willDisplayCell:forRowAtIndexPath: au lieu de la méthode tableView:cellForRowAtIndexPath: , comme indiqué dans la documentation Apple.

Cela marche !!

3voto

Hayaßusa Points 1
[cell.textLabel setBackgroundColor:[UIColor clearColor]];
[cell.contentView setBackgroundColor:[UIColor redColor]];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X