如何根据同一部分中的数组更改UITableViewCell颜色Swift 4

时间:2018-05-09 05:35:41

标签: ios arrays swift uitableview

我有两个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 :(得分:3)

首先,将您的数组放入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
    }
}