92 votes

UITableView fond clair

Je me rends compte que iOS 7 n'a pas officiellement été libérés et nous ne devrions pas en parler MAIS je suis fou à essayer de comprendre ce problème. Sur iOS 6, ma table de point de vue a été transparent et de grand air. Première fois sous iOS 7, et le fond est blanc.

J'ai essayé de faire la table backgroundColor, couleur de la cellule etc etc pour UIColor clearColor mais n'ont pas de changement. J'ai fait tout ce que je peux penser.

Quelqu'un peut-il me dire comment résoudre ce problème? Merci à l'avance!

the table

125voto

slamor Points 776
     // Fix for iOS 7 to clear backgroundColor
    cell.backgroundColor = [UIColor clearColor];
    cell.backgroundView = [[UIView new] autorelease];
    cell.selectedBackgroundView = [[UIView new] autorelease];
 

dans cellForRowAtIndexPath

Assurez-vous également que votre tableview a un fond transparent (dans le storyboard): entrez la description de l'image ici

58voto

Mettez ceci:

 cell.backgroundColor = [UIColor clearColor];
 

Dans cette section:

 cellForRowAtIndexPath
 

25voto

dandan Points 138

Essayez de définir backgroundView à néant en premier.

[self.tableView setBackgroundView:nil];
[self.tableView setBackgroundColor:[UIColor clearColor]];

Pas sûr si ce est un changement dans la documentation avec iOS7 ou a toujours été là et n'a pas d'incidence sur la couleur de fond, mais par UITableView de Référence de Classe @property backgroundView

"Vous devez définir cette propriété à néant pour définir la couleur d'arrière-plan de la vue de la table."

edit: correction de la syntaxe du code

25voto

mtb Points 338

Cela a été répondu, mais de manière incorrecte à bien des égards.

Vous devez implémenter la méthode déléguée ci-dessous:

     - (void)tableView:(UITableView *)tableView  willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    [cell setBackgroundColor:[UIColor clearColor]];
}
 

Vous ne pouvez pas mettre le correctif dans cellForRowAtIndexPath car c'est après le rendu de la cellule et un fond blanc clignotera avant que l'arrière-plan ne disparaisse (sur les périphériques plus lents).

Utilisez cette méthode de délégué et vos problèmes sont résolus!

15voto

asdusd Points 81

En fait officiellement le bon endroit pour changer la couleur d'arrière-est différente selon la documentation (UITableViewCell Classe de Référence):

Si vous utilisez un modèle prédéfini ou personnalisé cellule, vous pouvez modifier la cellule arrière-plan à l'aide de la backgroundView de propriété ou par la modification de la hérité de la propriété backgroundColor. Dans iOS 7, les cellules ont un blanc arrière-plan par défaut; dans les versions antérieures d'iOS, les cellules hériter de la couleur d'arrière-plan de l'affichage de la vue de la table. Si vous souhaitez modifier la couleur de fond d'une cellule, le faire dans le tableView:willDisplayCell:forRowAtIndexPath: méthode de votre vue de table délégué.

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