更改每个其他单元格的 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 背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何设置特定UITableViewCell的背景颜色

选择其中一个时更改其他表格视图单元格的数据

更改集合视图中每个第三个单元格的宽度

根据存储在其他单元格中的 RGB 值动态更改单元格的背景颜色

更改 VuetifyJS DataTable 单元格的默认宽度

AG-Grid:如何根据同一行中其他单元格中的值更改单元格的颜色