我一直在搜索一个逻辑来动态更改tableView中标签的颜色,我使用arrayList来打印在tabels原型单元格上打印的主题(印地语,英语,数学,旁遮普语,地理),现在我想改变所有颜色每三个区间的受试者,如第一个细胞标签应该是红色,第二个应该是绿色,第三个应该是白色,并按照这个动态规则进行更为细胞
这是我用来打印静态单元格标签颜色的方法
switch subjectsList[indexPath.row] {
case subjectsList[1],subjectsList[4]:
cell.subjectFirstLetter.textColor = UIColor.orange
case subjectsList[2],subjectsList[5]:
cell.subjectFirstLetter.textColor = UIColor.red
default:
cell.subjectFirstLetter.textColor = UIColor.white
}
我怎么能让这种动态?
更新: - 解决了
let remainder = indexPath.row % 3
switch remainder {
case 1:
cell.subjectFirstLetter.textColor = .orange
case 2:
cell.subjectFirstLetter.textColor = .red
default: // e.g. zero
cell.subjectFirstLetter.textColor = .white
}
使用Modulo
:
let color: UIColor
switch indexPath.row % 3 {
case 0:
color = UIColor.red
case 1:
color = UIColor.green
case 2:
color = UIColor.white
default:
break
}
cell.subjectFirstLetter.textColor = color
在这里使用modulo(remainder)运算符和indexPath来设置标签颜色:
let remainder = indexPath.row % 3
switch remainder {
case 1:
cell.subjectFirstLetter.textColor = .orange
case 2:
cell.subjectFirstLetter.textColor = .red
default: // e.g. zero
cell.subjectFirstLetter.textColor = .white
}
(请注意,您可以在此处使用快捷方式访问UIColor。)