所以我有这个功能。
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.
}
我无法理解该错误。 当我获得索引路径时,为什么不能指向一个特定的单元并相应地更改属性。
答案 0 :(得分:4)
您无法访问尚未添加到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
}
注意:类名称应为 UpperCamelCase 。因此,您的customCell
应该命名为CustomCell
。