J'ai créé un groupe de cellules que je réutilise dans une vue de table. Toutes ces cellules ont juste UILabel
s à l'intérieur et certains UIImageView
s (rien ne couvre la cellule complète).Impossible de définir la couleur d'arrière-plan de UITableViewCell dans IB
La définition de la couleur d'arrière-plan dans IB n'a aucun effet (toujours blanche ou transparente, ne peut pas dire lequel d'entre eux). Mais si j'appuie sur Commande-R (interface de simulation), la cellule a la couleur d'arrière-plan correcte dans le simulateur.
J'ai essayé de le définir dans tableView:cellForRowAtIndexPath:
mais cela ne fonctionne pas comme je le pense non plus.
Cela fait le tour:
cell.contentView.backgroundColor = [UIColor redColor];
mais ceux-ci ont aucun effet (même si je mets le cell.contentView.backgroundColor
-clearColor
):
cell.backgroundView.backgroundColor = [UIColor redColor];
cell.backgroundColor = [UIColor redColor];
Je mis toute la mise en page/police/stuff de fond dans IB. Une idée de pourquoi cela ne fonctionne pas dans ce cas? Pourquoi ai-je besoin de modifier le backgroundColor
et non le backgroundView
?
Cela semble être un problème commun. Quelqu'un pourrait-il me diriger dans la bonne direction pour (enfin) comprendre comment les couleurs d'arrière-plan sont traitées dans une cellule de vue de table.
thx pour l'info. mais encore, pourquoi le réglage dans le IB ne fonctionne pas? Je place juste le label.text dans le contrôleur. et la définition de l'arrière-plan IB fonctionne dans tous les nib (UIView), mais pas avec UITableViewCell. – klemens
Impossible de confirmer pour l'instant, mais UITableViewCell semble être un cas particulier.Dans les docs Apple pour willDisplayCell et les cellules personnalisées, il mentionne d'utiliser cette méthode qui est appelée "après que la vue de la table soit faite en réglant les couleurs en fonction de la sélection, etc". Cela peut fonctionner si vous créez une sous-classe personnalisée de UITableViewCell dans le code, mais que vous ne pouvez pas le vérifier maintenant. – Anna
ok, donc je l'ai juste mis en place dans le code. Merci pour votre aide la plus excellente. – klemens