swift heightForRowAt indexPath 未更新
swift heightForRowAt indexPath not update
使用此代码,我根据数组中的项目数设置单元格的自动维度。
它有效,但是当我添加一些带有另一个 viewController 然后 return 的新项目时,即使数组的数量增加,高度也不会更新。
我在 viewDidAppear 中得到数组
有人可以帮助我吗?
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
print("called")
let misure = self.array.count
let cellHeight = CGFloat(50.0 * Float(misure))
print(cellHeight)
print(misure, " misure")
let section = indexPath.section
let row = indexPath.row
if section == 3 && row == 0{
return 100.0
}else if section == 4 && row == 0{
return cellHeight + 60.0
}
return 44.0
}
在 viewDidLoad 中我设置了
tableView.estimatedRowHeight = 44
获取数组更新后调用 tableView.reloadData()
哇,我找到了解决办法!
感谢这个回答:Swift: How to reload row height in UITableViewCell without reloading data
刚用过
tableView.beginUpdates()
tableView.endUpdates()
在 viewDidAppear 中
希望对其他人有所帮助!
我觉得如果你叫tableView.layoutIfNeeded()
应该会更好。这将更新任何处于挂起状态的布局更新。没有尝试用这个修改高度,但它应该可以工作。
使用此代码,我根据数组中的项目数设置单元格的自动维度。 它有效,但是当我添加一些带有另一个 viewController 然后 return 的新项目时,即使数组的数量增加,高度也不会更新。
我在 viewDidAppear 中得到数组
有人可以帮助我吗?
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
print("called")
let misure = self.array.count
let cellHeight = CGFloat(50.0 * Float(misure))
print(cellHeight)
print(misure, " misure")
let section = indexPath.section
let row = indexPath.row
if section == 3 && row == 0{
return 100.0
}else if section == 4 && row == 0{
return cellHeight + 60.0
}
return 44.0
}
在 viewDidLoad 中我设置了
tableView.estimatedRowHeight = 44
获取数组更新后调用 tableView.reloadData()
哇,我找到了解决办法!
感谢这个回答:Swift: How to reload row height in UITableViewCell without reloading data
刚用过
tableView.beginUpdates()
tableView.endUpdates()
在 viewDidAppear 中
希望对其他人有所帮助!
我觉得如果你叫tableView.layoutIfNeeded()
应该会更好。这将更新任何处于挂起状态的布局更新。没有尝试用这个修改高度,但它应该可以工作。