如何更改每个uitableviewcell背景颜色

时间:2016-08-09 08:42:21

标签: swift uitableview uicolor

我想按顺序更改每个单元格背景颜色。

这是我的颜色。我只想在图片中显示它们。

我现在用随机颜色显示它。但我想按顺序显示它们。

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

2 个答案:

答案 0 :(得分:7)

您需要删除此行

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

来自您的willDisplayCell函数,因为它已经将您的单元格放在参数中,并且您只是用新单元格覆盖它,并且您的新单元格将永远不会被使用。

如果您想按顺序显示颜色,则可以使用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])
}

答案 1 :(得分:3)

使用颜色制作一个数组,也许你必须动态地创建它们,但在这个例子中它们是硬编码的。

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

然后在您的cellForRowAtIndexPath中获取正确索引处的颜色并为单元格设置它。我不知道你的实际设置,但类似的东西应该有效。

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