【问题标题】:How to get the height of UITableView that is bigger than the screen (iOS)如何获取大于屏幕的UITableView的高度(iOS)
【发布时间】: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


【解决方案1】:

我必须创建一种方法来检测何时击中 tableview 的底部并重新加载 tableview,这是唯一的解决方案。

经验法则,尽量不要在滚动视图中嵌套动态大小的表格视图。

【讨论】:

    猜你喜欢
    • 2011-08-06
    • 2012-12-17
    • 2011-09-25
    • 2022-01-16
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多