2015-05-29 136 views
1

我正在研究UITableView,我需要更改每个第二个单元格的背景颜色以帮助查看数据。Swift UITableviewCell颜色更改

要做到这一点,我试图使一个名为“cellAlteration”,我加载数据(所以第一单元应为白色)

var cellAlteration: Int = 0 

又在哪里设置我的细胞之前设置为0简单变量我做到以下几点:

 // #BackgroundColor 
    if cellAlteration == 0 { 
     self.backgroundColor = UIColor.whiteColor() 
     cellAlteration = 1 
    } else { 
     self.backgroundColor = UIColor.formulaWhiteColor() 
     cellAlteration = 0 
    } 

(我知道这应该改成一个BOOL数据类型,而不是诠释,但我的问题似乎无关紧要在这一刻)

下面是结果的图像:

enter image description here

正如你可以看到它不是正确的交流。

当我一直在测试这个,它看起来像它获得正确加载的单元格(UITableView只加载并显示您可以看到的单元格) - 着色似乎没有发生问题直到我向下滚动,UITableView必须加载并显示新的单元格。

因此,由于我的简单变量检查方法不起作用,在Swift中做单元格变换的正确方法是什么?

任何帮助将不胜感激:)!

回答

5

你不需要一个变量来做到这一点。根据行是偶数还是奇数来确定颜色。把这个放到cellForRowAtIndexPath中,等你出队了一个单元后,

if indexPath.row % 2 == 0 { 
    cell.backgroundColor = UIColor.whiteColor() 
}else{ 
    cell.backgroundColor = UIColor.formulaWhiteColor() 
} 
+0

试试吧,谢谢你的快速回复! –

+0

非常感谢你再次感谢rdelmar! 我必须再等7分钟左右才能接受您的答案。 :) –