tableView单元格的背景调色板

时间:2015-02-14 12:24:32

标签: swift

我试图通过添加bg颜色来定制单元格。我已经想出如何用特定的颜色制作它们。但我的目标是使用颜色托盘。所以我用3种颜色制作了数组:

var bgPalette = ["red: 105/255.0, green:210/255.0, blue:231/255.0", "red: 167/255.0, green:219/255.0, blue:216/255.0", "red: 224/255.0, green:228/255.0, blue:204/255.0"]

并尝试在单元格中使用这些托盘

cell.backgroundColor = UIColor(bgPalette[index], alpha:1.0 )

但它不起作用。

来自Udemy"完整的iOS8和Swift课程的#Viney"告诉我为每种颜色创建4个变量,如下所示:

let myColor1: UIColor = UIColor( red: CGFloat(110/255.0), green: CGFloat(110/255.0), blue: CGFloat(255/255.0), alpha: CGFloat(1.0) )
let myColor2: UIColor = UIColor( red: CGFloat(0/255.0), green: CGFloat(110/255.0), blue: CGFloat(11/255.0), alpha: CGFloat(1.0) )
let myColor3: UIColor = UIColor( red: CGFloat(0/255.0), green: CGFloat(0/255.0), blue: CGFloat(255/255.0), alpha: CGFloat(1.0) )
let myColor4: UIColor = UIColor( red: CGFloat(210/255.0), green: CGFloat(10/255.0), blue: CGFloat(255/255.0), alpha: CGFloat(1.0) )

使用这些颜色创建数组:

var paletteArray:[UIColor] = [myColor1,myColor2,myColor3,myColor4]

然后从我的cellForRowAtIndexPath方法中的调色板中取出那些颜色

cell.backgroundColor = paletteArray[indexPath.row]

但它没有帮助。我打赌我的答案是正确的,但是一旦我在斯威夫特的诺布,我需要你的帮助。

如何在没有objective-c的情况下修复它?

谢谢!

1 个答案:

答案 0 :(得分:0)

你没有告诉我们出了什么问题,但我认为我看到了两个错误

cell.backgroundColor = paletteArray[indexPath.row]

应该是

cell.contentView.backgroundColor = paletteArray[indexPath.row % paletteArray.count]

%是模运算符,它返回除法的其余部分。对于您的tableview有超过4行的情况,这是一个预防措施。

0 % 4 -> 0
1 % 4 -> 1
2 % 4 -> 2
3 % 4 -> 3
4 % 4 -> 0
5 % 5 -> 1 

如您所见,索引将始终保持在数组的范围内。

相关问题