web-dev-qa-db-fra.com

iOS Swift - Comment changer la couleur d'arrière-plan de la vue Tableau?

J'ai une vue tableau simple, je peux changer les couleurs des cellules, mais lorsque vous essayez de changer la couleur de la vue Tableau (partie arrière-plan), cela ne fonctionne pas ... Je l'ai essayé via Storyboard ... Quelqu'un peut-il s'il vous plaît aider

30
Vikas Seth

Commencez par définir la couleur d’arrière-plan de la table dans viewDidLoad comme ci-dessous:

override func viewDidLoad() {
    super.viewDidLoad()   
    self.tableView.backgroundColor = UIColor.lightGrayColor()
}

Maintenant, ajoutez cette méthode:

override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    cell.backgroundColor = UIColor.clearColor()
}

Dans Swift, utilisez les méthodes ci-dessous au lieu de la méthode précédente:

override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView.backgroundColor = UIColor.lightGray
}

override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    cell.backgroundColor = UIColor.clear
}
53
Homam
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    cell.contentView.backgroundColor = UIColor.yellowColor()
}

Swift 3

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    cell.contentView.backgroundColor = UIColor.yellow
}
15
Lucas Farah

Si vous souhaitez atteindre cet objectif via le storyboard, sélectionnez "Vue du contenu" dans "Cellule de vue du tableau" dans votre vue Tableau, puis dans l'inspecteur d'attributs, sélectionnez Affichage et modifiez sa couleur comme suit:

Xcode

7
user6082493

utilisez ce code pour changer la couleur de la tableView

override func viewDidLoad() {
        super.viewDidLoad()

       // define tableview background color
        self.tableView.backgroundColor = UIColor.clearColor()
}

pour changer la table

cell.backgroundColor = UIColor.clearColor()
4
IOS Singh

Tu as:

  1. Fond de cellule ET
  2. Cell ContentView

Placez ContentView comme Default (transparent) dans SB, et dans la méthode de votre cellule dans awakeFromNib, simplement:

self.backgroundColor = UIColor.SomeColor
0
William

Je suis un peu en retard au jeu! Mais, aucune des réponses ci-dessus n'a fonctionné pour moi, alors je vais simplement partager ce que j'ai trouvé, au cas où quelqu'un d'autre sauterait sur ce fil.

REMARQUE: j'ai également ma propre classe de cellules personnalisée. Pas sûr que cela affectera votre code!

@IBDesignable class YourViewController: UITableViewController {

//IBInspectable and IBDesignable makes the properties accessible in storyboard
@IBInspectable var tableViewBackground: UIColor?
@IBInspectable var cellViewBackground: UIColor?

//in case you want to customize the text color, as well!
@IBInspectable var customTextColor: UIColor?


override func viewDidLoad() {
//your code
self.tableView.backgroundColor = tableViewBackground
}

override func tableView(_ tableView: UITableView, cellForRowAt indexPath:    IndexPath) -> UITableViewCell {

    let cell = UITableViewCell()
    cell.textLabel?.textColor = customTextColor
    cell.backgroundColor = cellViewBackground
    return cell
}
//the rest of your code
}

Trouver vos inspectables:

1). Dans le menu Storyboard du viewController de votre tableView, cliquez sur yourViewController. La première liste déroulante à l'intérieur du viewController. (Le premier menu déroulant contiendra votre tableView et votre cellView. Il peut également contenir d'autres goodies en fonction de votre projet).

2) Dans l'inspecteur d'attributs, vous verrez un en-tête avec le nom de votre viewController et les propriétés @IBInspectable que nous avons définies ci-dessus!

3) Vous pouvez ensuite les modifier comme vous le souhaitez.

J'espère que cela t'aides!

0
Brigitte Alese