您好我想要改变我的UITableView Cells的5个单元格的颜色,所以对于单元格2,我将为绿色单元格一个蓝色,依此类推。然后,当我击中5个单元格时,我希望颜色重新开始。
这是我到目前为止所做的:
if(indexPath.row % 5 == 0){
cell.backgroundColor = [UIColor blackColor];
} else if (indexPath.row % 4 == 0) {
cell.backgroundColor = [UIColor redColor];
} else if (indexPath.row % 3 == 0) {
cell.backgroundColor = [UIColor greenColor];
} else if (indexPath.row % 2 == 0) {
cell.backgroundColor = [UIColor blueColor];
} else if(indexPath.row % 1 == 0) {
cell.backgroundColor = [UIColor orangeColor];
如果有人能指出我正确的方向,我会非常感激。谢谢!
答案 0 :(得分:3)
你需要以相同的数字模数,而不是不同的数字。这应该指向正确的方向:
static NSArray* rowColors;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
rowColors = @[[UIColor redColor], [UIColor blueColor], [UIColor greenColor], [UIColor orangeColor], [UIColor yellowColor]];
});
int rowMod = indexPath.row % rowColors.count;
UIColor* color = rowColors[rowMod];
cell.contentView.backgroundColor = color;
这种方法比现有方法做得更好:
希望它有所帮助!
答案 1 :(得分:1)
我认为这就是你要找的东西:
if(indexPath.row % 5 == 0)
{
cell.backgroundColor = [UIColor blackColor];
}
else if (indexPath.row % 5 == 1)
{
cell.backgroundColor = [UIColor redColor];
}
else if (indexPath.row % 5 == 2)
{
cell.backgroundColor = [UIColor greenColor];
}
else if (indexPath.row % 5 == 3)
{
cell.backgroundColor = [UIColor blueColor];
}
else if(indexPath.row % 5 == 4)
{
cell.backgroundColor = [UIColor orangeColor];
}
你想保持模数除数相同 - 它实际上将要改变的余数