Frage Wie man jede Hintergrundfarbe der uitableviewcell ändert


Ich möchte jede Zellenhintergrundfarbe in der Reihenfolge ändern.

Das ist meine Farbe. Und ich möchte sie nur wie im Bild gezeigt zeigen.

Ich zeige es jetzt mit zufälligen Farben. Aber ich möchte sie in der Reihenfolge zeigen.

var cellColors = ["F28044","F0A761","FEC362","F0BB4C","E3CB92","FEA375"]
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! GroupTableViewCell
        let randomColor = Int(arc4random_uniform(UInt32(self.cellColors.count)))
        cell.contentView.backgroundColor = UIColor(hexString: self.cellColors[randomColor])
    }

enter image description here


5
2017-08-09 08:42


Ursprung


Antworten:


Sie müssen diese Zeile löschen

let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! GroupTableViewCell

von deiner willDisplayCell Funktion, weil es Ihre Zelle bereits in Parametern hat, und Sie überschreiben es gerade mit neuer Zelle, und Ihre neue Zelle wird nie benutzt.

Wenn Sie Farben in der Reihenfolge anzeigen möchten, dann können Sie verwenden indexPath:

var cellColors = ["F28044","F0A761","FEC362","F0BB4C","E3CB92","FEA375"]
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    cell.contentView.backgroundColor = UIColor(hexString: cellColors[indexPath.row % cellColors.count])
}

7
2017-08-09 08:49



Machen Sie ein Array mit den Farben, vielleicht müssen Sie sie dynamisch erstellen, aber in diesem Beispiel sind sie fest codiert.

let bgColors = [UIColor.blackColor(), UIColor.grayColor(), UIColor.whiteColor()];

Dann nehmen Sie in Ihrem cellForRowAtIndexPath die Farbe am richtigen Index und setzen Sie sie für die Zelle. Ich kenne Ihre tatsächliche Einrichtung nicht, aber etwas Ähnliches sollte funktionieren.

let bgColor = bgColors[indexPath.row]
cell.contentView.backgroundColor = bgColor

2
2017-08-09 08:49