J'essaie de configurer une image png comme arrière-plan de ma tableview. Avec le code suivant tout va bien! Mais uniquement sur iPhone Simulator. Si j'essaie d'exécuter l'application sur un appareil iPhone, l'arrière-plan de tableview reste blanc (ou clair). Pensez-vous que cela a quelque chose à voir avec la façon dont j'ai essayé de définir la couleur de fond. J'ai essayé de nombreuses manières jusqu'à la suivante, mais tous ont le même problème.
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.opaque = NO;
self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
Merci d'avance!
Veuillez utiliser le code suivant.
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame];
self.tableView.backgroundView = tempImageView;
[tempImageView release];
Merci,
Je pense que cette approche plus propre:
UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"TableBackground.jpg"]];
self.tableView.backgroundColor = background;
[background release];
La version Swift simple sera
let tempImageView = UIImageView(image: UIImage(named: "yourImage"))
tempImageView.frame = self.tableView.frame
self.tableView.backgroundView = tempImageView;
Votre image s'appelle-t-elle réellement TableViewBackground.PNG
(notez les majuscules)? La casse doit correspondre exactement sur un périphérique iOS, alors qu'elle n'a pas besoin de correspondre exactement dans le simulateur.
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"TableViewBackground.png"]];
[tempImageView setFrame:self.tableView.frame];
self.tableView.backgroundView = tempImageView;
[tempImageView release];
Cela fonctionne parfaitement. Merci à Ravin de Jona
Une sous-classe IBDesignable tableview qui vous permettra d'attacher une image à partir du générateur d'interface
import UIKit
@IBDesignable
class DesignableTableView: UITableView {
@IBInspectable var backgroundImage: UIImage? {
didSet {
if let image = backgroundImage {
let backgroundImage = UIImageView(image: image)
backgroundImage.contentMode = UIViewContentMode.ScaleToFill
backgroundImage.clipsToBounds = false
self.backgroundView = backgroundImage
}
}
}
}
[TableView setBackgroundView:nil];
[TableView setBackgroundView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Apple.png"]] ];
Cela fonctionne parfaitement, même si vous souhaitez utiliser une image de modèle pour votre arrière-plan.
UIImage *image = [UIImage imageNamed:@"something.png"];
self.tableView.backgroundView = nil;
self.view.backgroundColor = [UIColor colorWithPatternImage:image];
Un peu tard mais peut-être pour tous les autres à la recherche d'une solution. Je pourrais obtenir ce travail en utilisant le code suivant dans la méthode viewDidLoad
de la UITableViewController
:
self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
self.tableView.backgroundColor = [UIColor clearColor];
ou en utilisant juste une couleur de fond:
self.parentViewController.view.backgroundColor = [UIColor scrollViewTexturedBackgroundColor];
self.tableView.backgroundColor = [UIColor clearColor];
J'ai mis du temps à comprendre cela, mais maintenant cela fonctionne à merveille.
Version Objective-c:
cell.backgroundColor = [UIColor clearColor];
Voir aussi ceci: Comment créer un UITableViewCell avec un arrière-plan transparent