46 votes

Cellule UITableView avec image de fond

J'ai un UITableView, où il y a 3 images. 1 pour la cellule sélectionnée, 1 pour le fond de la cellule et 1 pour le fond du TableView.

Ma cellule sélectionnée fonctionne parfaitement, mais j'ai quelques problèmes avec les cellules normales et l'arrière-plan du TableView (l'arrière-plan derrière les cellules lorsque vous faites trop défiler vers le bas ou vers le haut).

Quelqu'un peut-il m'aider à créer un arrière-plan pour chaque cellule et un arrière-plan pour le TableView ? Comment faire ?

Fond de cellule normal : (pas sûr que ce soit correct)

// CELL'S BACKGROUND-IMAGE
    self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"cell_normal.PNG"]];

Fond de cellule sélectionné :

// SELECTED CELL'S BACKGROUND-IMAGE
    UIView *viewSelected = [[[UIView alloc] init] autorelease];
    viewSelected.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"cell_highlighted.PNG"]];
    cell.selectedBackgroundView = viewSelected;

144voto

Naveen Thunga Points 2721

Pour la cellule

    cell.backgroundView = [[UIImageView alloc] initWithImage:[ [UIImage imageNamed:@"cell_normal.png"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0] ];  
    cell.selectedBackgroundView =  [[UIImageView alloc] initWithImage:[ [UIImage imageNamed:@"cell_pressed.png"] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0] ];

Pour Tableview

    [mEditTableView setBackgroundView:nil];
    [mEditTableView setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"apple.png"]] ];

10voto

Vous pouvez définir UITableViewCell arrière-plan couleur/image En suivant la méthode du délégué

 - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath
 *)indexPath  
{      
     if((indexPath.row)==0)  
       cell.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"cell_normal.PNG"]]; //set image for cell 0

     if (indexPath.row==1)  
       cell.backgroundColor = [UIColor colorWithRed:.8 green:.6 blue:.6 alpha:1]; //set color for cell 1

     tableView.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed: @"cloud.jpg"]]; //set image for UITableView

  }

6voto

Vikram Pote Points 3185

Dans swift, vous pouvez définir une image de fond pour UITableViewCell comme ci-dessous.

cell.backgroundView = UIImageView(image: UIImage(named: "yourImage.png")!)

Ecrivez ce code dans cette fonction de la vue tableau.

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 

Cette image sera répétée à chaque rangée.

3voto

FoJjen Points 704

Ceci définit l'arrière-plan pour le tableau, pas pour la cellule.

// CELL'S BACKGROUND-IMAGE
    self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"cell_normal.PNG"]];

essayer de définir le fond de cellule dans cellForRowAtIndexPath

 cell.backgroundColor =  [UIColor colorWithPatternImage:[UIImage imageNamed:@"cell_normal.PNG"]];

2voto

David DelMonte Points 1369

Dans Swift 4, cela fonctionne :

cell.backgroundView = UIImageView.init(image: UIImage.init(named: "YORIMAGE.jpg"))

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