我如何在间隔中动态更改表格原型单元格标签的颜色

时间:2018-09-17 05:56:41

标签: ios swift dynamic intervals

我一直在寻找逻辑来动态更改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
}

2 个答案:

答案 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。)