所以我有这个功能。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cellIdentifier = "Cell"
    let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier) as! customCell
    changeCellProperty(selectedIndexPath: indexPath)
    return cell;
}

func changeCellProperty(selectedIndexPath: IndexPath){
    print("indexpath = \(selectedIndexPath)") . // printing [0,0] and all values
    let cell = self.tableView.cellForRow(at: selectedIndexPath) as! customCell
    // got nil while unwrapping error in above statement.

    cell.label.text = ""
    // and change other properties of cell.
}

我不能理解这个错误。
当我得到indexpath时,为什么我不能指向一个特定的单元格并相应地更改属性。

最佳答案

无法访问尚未添加到tableView的单元格。这就是您在changeCellProperty方法中要做的。所以,如果您的出列工作,那么您所需要做的就是将出列单元格传递给该方法。

func changeCellProperty(cell: customCell){
     cell.label.text = ""
     // and change other properties of cell.
}

您的cellForRowAt方法如下所示。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cellIdentifier = "Cell"
    let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier) as! customCell
    changeCellProperty(cell: cell)
    return cell
}

注意:类名应该是大写的。所以你的customCell应该被命名为CustomCell

关于ios - cellForRow(at:)返回nil,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52696362/

10-10 00:56