我有一个tableView
,当用户点击单元格时,它会扩展单元格的高度。问题在于某些单元格在扩展单元格高度tableView
后滚动到非常高或更低的selectedCell
,我是说它错过了当前单元格位置
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if cellsMode[indexPath.row] {
return 344
}
else {
return 140 }
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.cellsMode[indexPath.row] = !self.cellsMode[indexPath.row]
table.reloadData()
}
我尝试使用
let indexPath = NSIndexPath(row: cellInex, section: 0)
self.table.scrollToRow(at: indexPath as IndexPath, at: .bottom, animated: false)
但不起作用。 我该如何解决?
答案 0 :(得分:2)
只是重新加载单元格而不是整个表格视图,就像下面这样:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.cellsMode[indexPath.row] = !self.cellsMode[indexPath.row]
tableView.reloadRows(at: [indexPath], with: .automatic)
}