Ami*_*mit 1 uitableview ios swift
我创建了一个UITableView包含两个具有动态单元高度的单元的多个部分。在第二个单元格上添加了一个按钮。单击按钮后,通过更改约束高度来增加第二个单元高度。连接到按钮的操作方法是:
func increaseHeightOnClickOfButton(sender: UIButton) {
let indexPath = IndexPath(item: 1, section: sender.tag)
let cell = myTableView.cellForRow(at: indexPath) as! customCell
cell.viewHeightConstraint.constant = 100
self.myTableView.reloadRows(at: [indexPath], with: .automatic)
}
Run Code Online (Sandbox Code Playgroud)
问题:单击按钮时,第二部分的单元格高度会增加,而不是第一个部分的高度。
我也尝试过给出这样的部分的固定值:
let indexPath = IndexPath(item: 1, section: 0)
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
仅当我尝试此代码时它才有效:
func increaseHeightOnClickOfButton(sender: UIButton) {
let indexPath = IndexPath(item: 1, section: sender.tag)
let cell = myTableView.cellForRow(at: indexPath) as! customCell
cell.viewHeightConstraint.constant = 100
self.myTableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)
但我不想重新加载整个表视图。任何人都可以帮助我做错了什么或者有其他方法可以实现它吗?
编辑:
我又做了一项更改,删除了:
self.myTableView.reloadRows(at: [indexPath], with: .automatic)
Run Code Online (Sandbox Code Playgroud)
当我开始滚动表格视图时单击按钮后,返回到同一单元格会增加其高度。所以我猜想有一些问题reloadRows。
小智 5
您可以使用以下代码重新加载单元格的高度,而无需重新加载整个数据:
tableView.beginUpdates()
tableView.endUpdates()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3980 次 |
| 最近记录: |