获取uitableview中特定行的实例

时间:2017-04-20 21:58:56

标签: ios swift uitableview

所以,我认为我的问题很简单,但我无法弄清楚如何做到这一点: 我在UIViewController里面有UITableView。假设tableView有50个单元格。所以问题是如何从顶部获取正好3个单元格的实例(例如)。例如,我只想从顶部改变第三个cel的背景颜色。  我的代码看起来像这样:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath)

    cell.textLabel?.text = dataArray[indexPath.row]

    if indexPath.row == 3 {
        cell.backgroundColor = UIColor.init(white: 0.9, alpha: 1)
    }

    return cell
}

我知道这段代码不起作用,因为单元格会出列。

4 个答案:

答案 0 :(得分:1)

您可以通过不同方式更改第3个细胞的颜色。

我认为,在这种情况下,您错过了else块,以便重置将使同一对象出列的其他单元格的背景。

答案 1 :(得分:1)

您的代码是正确的,您只需要考虑else案例。

if indexPath.row == 3 {
    cell.backgroundColor = UIColor(white: 0.9, alpha: 1)
} else {
    //reset your cell to default so dequeue will work correctly
}

答案 2 :(得分:0)

如果想在cellforrowAtindexpath中改变颜色,那么:

  if indexPath.row == 3 {
        cell.backgroundColor = UIColor(white: 0.4, alpha: 1)
    } else {
        //reset your cell to default so dequeue will work correctly
    }

/ ************** / 如果那边功能那么

让Cell = tableView.cellForRow(at:IndexPath(row:3,section:0))         cell.backgroundColor = UIColor(白色:0.4,alpha:1)

答案 3 :(得分:-1)

如果你的意思是你想要屏幕顶部的第三个,那么J =只需使用visibleCells

let cell = tableView.visibleCells[2]

如果您的意思是想要tableView中的第三个单元格,那么您的代码几乎是正确的。第三个单元格位于第2行,因为第一个单元格位于第0行。要触发更改,您可以调用tableView.reloadRows

tableView.reloadRows(at: [IndexPath(row: 2, section: 0)], with: .automatic)