Comment créer un UITableViewCell avec un arrière-plan transparent

J’essaie de définir la couleur d’arrière-plan d’un UITableViewCell sur transparent. Mais rien ne semble fonctionner. J’ai quelques images / boutons à l’intérieur de la tableViewCell et je voudrais que l’ grouptableview plan blanc grouptableview disparaisse pour obtenir un effet «flottant» pour les images et les boutons (comme s’ils n’étaient pas à l’intérieur de la tableview ).

Une idée de comment cela pourrait être accompli?

Si les deux autres options ne fonctionnaient pas, essayez ceci

 UIView *backView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; backView.backgroundColor = [UIColor clearColor]; cell.backgroundView = backView; 

Ceci est effectivement répondu dans les documents de UITableViewCell. Donc, même si vous devez configurer la transparence sur vos commandes, la couleur d’arrière-plan de la cellule doit être définie ci-dessous.

“Remarque: Si vous souhaitez modifier la couleur d’arrière-plan d’une cellule (en définissant la couleur d’arrière-plan d’une cellule via la propriété backgroundColor déclarée par UIView), vous devez le faire dans la tableView: willDisplayCell: forRowAtIndexPath: méthode du délégué et non dans tableView: cellForRowAtIndexPath: de la source de données Les modifications apscopes aux couleurs d’arrière-plan des cellules d’une vue de table de style groupe ont un effet différent de celui des versions précédentes du système d’exploitation dans iOS 3.0. de la zone en dehors de lui. ”

https://developer.apple.com/documentation/uikit/uitableviewcell

Commencez avec ces articles pour obtenir la couleur de fond correctement configurée:

http://howtomakeiphoneapps.com/2009/03/how-to-add-a-nice-background-image-to-your-grouped-table-view/

http://pessoal.org/blog/2009/02/25/customizing-the-background-border-colors-of-a-uitableview/

Ensuite, essayez toutes les lignes suivantes:

 [[cell contentView] setBackgroundColor:[UIColor clearColor]]; [[cell backgroundView] setBackgroundColor:[UIColor clearColor]]; [cell setBackgroundColor:[UIColor clearColor]]; 

Il y a plus d’une vue masquant dans une UITableViewCell. Cela devrait clarifier tous les éléments.

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

J’ai une solution simple

Version objective-c :

 cell.backgroundColor = [UIColor clearColor]; 

Version rapide :

 cell.backgroundColor = UIColor.clearColor() 

Par défaut, l’arrière-plan de votre UITableViewCell est blanc. Faire myCell.backgroundColor = [UIColor clearColor]; rendra votre UITableViewCell transparent MAIS vous ne sentirez pas la différence car UITableView (le contener de votre UITableViewCell) a également un arrière-plan blanc par défaut.

Si vous voulez voir votre arrière-plan UIView, vous devrez rendre votre cellule et votre arrière-plan de tableau transparents:

 myTableView.backgroundColor = [UIColor clearColor]; myTableCell.backgroundColor = [UIColor clearColor]; 

Martin Magakian

Si vous utilisez des storyboards, assurez-vous de décocher “Opaque” pour votre prototype UITableViewCells

J’ai eu un problème où mon image de fond personnalisée tableviewcell était recouverte d’un arrière-plan d’étiquette blanche, j’ai tout essayé et finalement réglé l’arrière-plan pour effacer la couleur dans la vue.

  - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; self.tableView.backgroundColor = [UIColor clearColor]; // if this is not here, cell background image is covered with a white rectangle :S } 

et dans le rowForCellAtIndexPath j’ai défini l’image d’arrière-plan:

  if(!cell) { cell = [[[UITableViewCell alloc] initWithFrame: ... UIImageView *cellBG = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cellbg.jpg"]]; [cell setBackgroundView:cellBG]; [cellBG release]; } 

Voici ma solution dans Swift 4.1:

 override func viewDidLoad() { super.viewDidLoad() tableView.backgroundView = UIImageView(image: "Image") } override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { cell.backgroundColor = UIColor.clear {