更改每个其他单元格的 UItableViewCell 背景颜色
Posted
技术标签:
【中文标题】更改每个其他单元格的 UItableViewCell 背景颜色【英文标题】:Change UItableViewCell background color of every other cell 【发布时间】:2012-08-10 23:26:04 【问题描述】:为了让我的 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];
列表第一次显示时看起来不错(第一个单元格是浅蓝色,第二个是白色,第三个是浅蓝色......)。但是......当我播放并移动列表几次并完成单元格的背景颜色混合时。我很确定这与细胞被重复使用的事实有关,但我不知道如何解决这个问题。有什么想法吗?
【问题讨论】:
【参考方案1】:您需要else
来设置其他颜色,因为您无法预测上次为重复使用的单元格设置的颜色。
【讨论】:
【参考方案2】:在 if 语句中添加一个 else 部分,在其中将背景颜色设置为另一种颜色。
【讨论】:
【参考方案3】:你需要一个 else 来配合你的 if 以便以另一种方式设置颜色,否则,最终,你的所有单元格都会以相同的颜色结束。
此外,如果您只有在 if(!cell) 或 if(cell == nil) 代码块中使用该方法,则在显示出列单元格时不会调用它。所以,你需要确保它在一个每次都会被调用的块中。
【讨论】:
以上是关于更改每个其他单元格的 UItableViewCell 背景颜色的主要内容,如果未能解决你的问题,请参考以下文章
根据存储在其他单元格中的 RGB 值动态更改单元格的背景颜色