当单元格的高度不同时,如何在表格视图中获取所有单元格的高度?

Posted

技术标签:

【中文标题】当单元格的高度不同时,如何在表格视图中获取所有单元格的高度?【英文标题】:how to get all the cells height in tableview when the cells are of different height? 【发布时间】:2018-03-21 13:25:29 【问题描述】:

我找到了如下所示的获取可见单元格高度的选项,但是如何获取所有单元格高度

     let cells = self.tableView.visibleCells
    for cell in cells 
        heightOfTableView += cell.frame.height
    

【问题讨论】:

检查 cell.tableview.contentsize 使用 min(tableview.contentsize, tableView.frame.height) . 你说所有单元格是什么意思?所有在表格视图上可见的内容或滚动时应该绘制的项目数? @karthikeyan 工作 检查 cell.tableview.contentsize.height 【参考方案1】:

这是不可能的。 UITableView 只保留可见的单元格。一旦它们滚动出可见区域,它们就会被丢弃。

您可能想要的是继承自 UIScrollViewcontentSize.height

【讨论】:

【参考方案2】:

您可以使用任何固定的单元格高度来返回恒定值,对于可变高度使用AutomaticDimension

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat 

    if indexPath.row == 0
        return 160
    else
        return UITableViewAutomaticDimension
    


func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat 
    if indexPath.row == 0
        return 160
    else
        return UITableViewAutomaticDimension
    

【讨论】:

再次阅读问题,这与该问题无关

以上是关于当单元格的高度不同时,如何在表格视图中获取所有单元格的高度?的主要内容,如果未能解决你的问题,请参考以下文章

设置表格视图单元格的动态高度

当单元格是可变高度时,在 cellForRowAtIndexPath 中获取单元格的高度

如何在表格视图中更改一个单元格的高度? [复制]

表格视图中单元格的动态高度不起作用

仅针对一种原型单元格的自动表格视图单元格高度

如何动态更改自定义单元格的表格视图单元格的高度?