我一直在寻找逻辑来动态更改tableView中标签的颜色,我正在使用arrayList来打印打印在表格原型单元上的主题(印地语,英语,数学,旁遮普语,地理),现在我想更改每三个间隔中所有对象的颜色,例如第一个单元格标签应为红色,第二个应为绿色,第三个应为白色,并且对于进一步的细胞遵循此动态规则
这是我用来打印静态单元格标签颜色的方法
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
}
答案 0 :(得分:3)
使用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
答案 1 :(得分:0)
在此处使用带有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。)