所以我有这个功能。
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/