我想按顺序更改每个单元格背景颜色。
这是我的颜色。我只想在图片中显示它们。
我现在用随机颜色显示它。但我想按顺序显示它们。
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])
}
答案 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