【发布时间】:2017-09-08 07:18:38
【问题描述】:
我有这样的表格视图单元格。
然后我更新了图像高度约束并重新加载。我正在使用自动调整单元格大小并在 iOS 10 上进行测试。
How to animate UITableViewCell height using auto-layout?
imageHeightConstraint.constant = 200 //example only. it will be dynamic. Some image height will be 200, 400, etc
self.contentView.layoutIfNeeded()
UIView.setAnimationsEnabled(false)
self.delegate?.getTableView!().beginUpdates()
self.delegate?.getTableView!().endUpdates()
UIView.setAnimationsEnabled(true)
我也尝试只重新加载 1 行,但不行。
self.contentView.layoutIfNeeded()
let indexPath = IndexPath(item: self.tag, section: 0)
self.delegate?.getTableView!().beginUpdates()
self.delegate?.getTableView!().reloadRows(at: [indexPath], with: .none)
self.delegate?.getTableView!().endUpdates()
问题是它根本不会改变高度,除非我像这样重新加载表格。
imageHeightConstraint.constant = 200
self.delegate?.getTableView!().reloadData()
但我不想调用 reloadData,因为它会重新加载所有可见的单元格和资源密集型(当用户快速滚动时也会延迟)。我应该如何正确更新我的图像约束并正确更新表格视图单元格(自动调整大小)高度?
编辑 - 使用固有尺寸
我删除了我的高度约束,只在 UIImageview 中使用了固有大小的属性。那么高度是正确的,但宽度太大(因为它是内在的)。我该怎么办?
【问题讨论】:
-
我也尝试只重新加载 1 行,但不行。 -> 这是正确的代码。在 cellForRow 中,您如何更改同一单元格的图像高度? , 以及如何识别需要改变高度的单元格?
-
我更改了图像高度约束,每次更改该约束后,我都会重新加载 cell 。每个单元格都有等于 indexPath.row 的标签。
-
过去,我遇到过这种情况,我需要扩展单元格,我所做的是我跟踪 indexPath Globally ,并做了同样的事情,你为重新加载 1 Row 以及保持 @987654329 @ 保存到全局对象,并在行的单元格中检查当前 indexPath 是否与全局 indexPath 匹配,然后设置任何常量
标签: ios uitableview