为了让我的UITableView看起来更好,我需要交替更改每个单元格的背景颜色 由于我没有设法直接更改背景颜色,我在单元格的背景中添加了一个UILabel,然后执行以下操作(在cellForRowAtIndexPath方法中):
// Set cell color
if(indexPath.row % 2 == 0){
UIView *bckView = (UIView *)[cell viewWithTag:100];
bckView.backgroundColor = [UIColor colorWithRed:226.0/255.0 green:243.0/255.0 blue:1.0 alpha:1.0];
}
第一次显示列表时,它看起来不错(第一个单元格为浅蓝色,第二个单元格为白色,第三个单元格为浅蓝色......)。但是......当我玩和移动列表几次并完成时,细胞的背景颜色变得混杂。我很确定这与细胞被重复使用有关,但我无法弄清楚如何解决这个问题。有什么想法吗?
答案 0 :(得分:9)
您需要else
来设置其他颜色,因为您无法预测上次为重复使用的单元格设置的颜色。
答案 1 :(得分:3)
在if语句中添加else部分,将背景颜色设置为另一种颜色。
答案 2 :(得分:2)
为了设置颜色,你需要一个其他的if,否则,最终,你的所有单元格都会以相同的颜色结束。
此外,如果你在if(!cell)或if(cell == nil)代码块中只有那个方法,那么在显示一个出列的单元格时就不会调用它。因此,您需要确保它在每次调用的块中。