如何在使用tableViews自定义单元格时在运行时更改表视图单元格高度?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在使用tableViews自定义单元格时在运行时更改表视图单元格高度?相关的知识,希望对你有一定的参考价值。

我有主tableView M,它有X个单元格,每个x都有子tableView S,有N个单元格。我使用estimatedRowHeight和UITableViewAutomaticDimension来创建动态单元格高度。问题是,如何强制M表视图重新布局并更改x单元格的高度以适应运行时S tableView的内容大小?

here is an image of what i want to implement

答案

我认为您需要在表格视图M中手动计算每个单元格(每个X单元格)的高度。首先在每个X单元格中查找tableView S的高度。

计算TableView S的高度:

高度=细胞数*每个细胞的高度(N)

X格的高度=高度

注意:这里你提到你也在使用UITableViewAutomaticDimension for tableView S.因此,您需要根据其中的内容找到每个单元格N的高度。 E,g:如果要在单元格N中加载字符串,只需根据字符串长度计算标签高度,然后通过添加适当的间距高度和标签高度来提供单元格N高度。

谢谢。

另一答案

您必须在表视图M中手动计算每个单元格的高度,然后找出tableView S的高度与N个单元格的高度。

  1. 得到S的tableview.contentSize.height
  2. 将此contentSize赋予M的单元格X.
  3. 现在得到M的tableview.contentSize.height

制作两个单独的方法,通过单元格获取tableview的高度,并将它们写入tableview的“cellAtRow”委托中。 (制作自动布局的高度约束的iboutlet)。只需在运行时需要更改时重新加载表。

以上是关于如何在使用tableViews自定义单元格时在运行时更改表视图单元格高度?的主要内容,如果未能解决你的问题,请参考以下文章

UIImageView 对齐在初始显示时在 tableview 单元格中关闭,但之后没有

如何在自定义滑动(而不是滑动删除)单元格(滑动到邮件/短信)中点击一个单元格时删除在其他 TableView 单元格中添加的子视图

重用自定义 tableView 单元格时重复显示相同的子视图(Swift 4.1)

从 Tableview 自定义单元格翻转过渡到 UIViewController

使用自定义单元格时是不是调用了 cellForRowAtIndexPath?

为 iOS 选择 TableView 单元格时视图已更改