gpt4 book ai didi

ios - UITableview reloadRows 在 Swift 3 中无法正常工作

转载 作者:搜寻专家 更新时间:2023-11-01 06:02:03 25 4
gpt4 key购买 nike

我创建了一个包含多个部分的 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)
}

问题:点击按钮时,第二部分的单元格高度增加,而不是第一部分。

我也试过像这样给出部分的固定值:

let indexPath = IndexPath(item: 1, section: 0)

但它不起作用。

它仅在我尝试此代码时有效:

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()
}

但我不想重新加载整个 TableView 。任何人都可以帮助我做错什么或有没有其他方法可以实现它?

编辑:

我又做了一项更改,我删除了:

self.myTableView.reloadRows(at: [indexPath], with: .automatic)

当我开始滚动 tableview 时单击按钮后,回到同一个单元格会增加它的高度。所以我猜 reloadRows 有一些问题。

最佳答案

您可以使用以下代码重新加载单元格的高度而无需重新加载整个数据:

tableView.beginUpdates()
tableView.endUpdates()

关于ios - UITableview reloadRows 在 Swift 3 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46862111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com