Как изменить цвет UITableViewCell в соответствии с массивом в том же разделе Swift 4 - PullRequest
0 голосов
/ 09 мая 2018

У меня есть два массива Int, в которых хранится индекс, и я хочу, чтобы цвет фона ячейки IndexPath.row изменился соответствующим образом.

let   redCell     = ["0","1","4"]
let   greenCell   = ["2","3"]

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    var  cell  = tableView.dequeueReusableCell(withIdentifier: "playQuizTableViewCell") as? playQuizTableViewCell

    if indexPath.row == redCell {
        cell?.textLabel?.backgroundColor = UIColor.red
    } else if indexPath.row == greenCell{
        cell?.textLabel?.backgroundColor = UIColor.green
    } else {
        cell?.textLabel?.backgroundColor = UIColor.black
    }
}

Я хочу изменить цвет ячейки indexPath.row, который совпадает внутри массива.

Пожалуйста, ведите меня. Спасибо

1 Ответ

0 голосов
/ 09 мая 2018

Во-первых, превратите ваши массивы в массивы Int вместо String.

let redCell = [0, 1, 4]
let greenCell = [2, 3]

Теперь обновите ваш cellForRowAt, чтобы проверить, входит ли indexPath.row в данный массив:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCell(withIdentifier: "playQuizTableViewCell") as! playQuizTableViewCell

    if redCell.contains(indexPath.row) {
        cell.textLabel?.backgroundColor = .red
    } else if greenCell.contains(indexPath.row) {
        cell.textLabel?.backgroundColor = .green
    } else {
        cell?.textLabel?.backgroundColor = .black
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...