【发布时间】:2019-06-04 20:11:25
【问题描述】:
我有一个大于屏幕高度的 tableView,并且具有动态大小的单元格 (UITableViewAutomaticDimension)。我通过以下方式获取 tableview 的高度:
self.tableView.reloadData()
self.tableView.layoutIfNeeded()
let tableHeight = self.tableView.contentSize.height
但是,这个高度并不总是正确的,尤其是对于单元格大小完全不同的长列表。它似乎只是将表格的估计高度乘以行数。
如何获得具有不同单元格的 tableView 的确切高度?
【问题讨论】:
-
我认为你可以使用你必须得到它的代码 - 只需要在它被绘制在屏幕上后查询它。
-
使用估计大小的整个想法是,UITableView 不必计算其内容大小,因为为了做到这一点,它必须计算每个单元格的高度。如果您有数百或数千个动态大小的单元格,那么这样做会非常昂贵(尤其是当您依赖自动布局来调整单元格大小时)。这就是为什么在这种情况下您无法获得实际尺寸。
-
我想通了。我想我会手动计算后台线程上的单元格高度并相应地更新表格视图
-
@JoshO'Connor 你想做什么?为什么需要知道 contentSize?另外,您将如何计算后台线程上的 UI 内容?
标签: ios swift uitableview