Как я могу динамически изменять цвета меток ячеек прототипа таблицы в интервале - PullRequest
0 голосов
/ 17 сентября 2018

Я искал логику для динамического изменения цветов надписей в 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
}

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Используйте оператор по модулю (остаток) здесь с 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.)

0 голосов
/ 17 сентября 2018

Использование 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
...