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

Posted

技术标签:

【中文标题】如何根据同一节 Swift 4 中的数组更改 UITableViewCell 颜色【英文标题】:How Do I change UITableViewCell Colour According to Array in Same Section Swift 4 【发布时间】:2018-05-09 05:35:40 【问题描述】:

我有两个 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】:

首先,将您的数组变成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
    

【讨论】:

以上是关于如何根据同一节 Swift 4 中的数组更改 UITableViewCell 颜色的主要内容,如果未能解决你的问题,请参考以下文章

如何在swift ui watch os中的同一屏幕中添加键盘和文本字段[关闭]

swift UI数组创建BUTTON

Swift如何更改列表中节标题的背景颜色?

如何创建多个从同一个数组中获取值的动态下拉列表,而无需更改 Javascript 中的其他下拉列表

如何在 swift 4 中更改 NavBar 标题文本颜色?

Swift UI:使用数组中的随机元素更新视图