如何根据其内容更改单元格高度?

时间:2016-02-14 13:24:57

标签: ios swift uitableview

我有一个细节视图控制器,根据您在主视图控制器中按下的单元格,它具有不同的文本长度。如何根据内容的大小来设置单元格的高度?

仅供参考,该单元格由3个标签和1个图像视图组成。它垂直设置为UILabelUIImageViewUILabelUILabel

我正在使用Swift。

当我添加自动布局约束时会发生这种情况:

3 个答案:

答案 0 :(得分:0)

这样做的方法是使用自动布局。您需要从单元格的顶部到底部设置垂直约束:

  1. 单元格的上边缘与第一个标签的上边缘之间的距离。
  2. 从第一个标签的下边缘到图像视图的上边缘的距离。
  3. 从图像视图的下边缘到第二个标签的上边缘的距离。
  4. 等......
  5. 自动布局将根据您在标签和图片视图中放置的内容的大小来确定单元格的大小。

    您还应该记得将表视图上的estimatedRowHeight属性设置为一些有意义的值。这将有助于表格视图将内容大小的某些计算推迟到用户开始滚动时。

    另外,将表格视图的rowHeight属性设置为UITableViewAutomaticDimension

答案 1 :(得分:0)

您需要做的事情有四件事:

  1. tableView:heightForRowAtIndexPath方法设置为返回UITableViewAutomaticDimension
  2. 设置tableView:estimatedHeightForRowAtIndexPath以返回单元格的平均高度。你可以将它设置为静态的东西,如100。
  3. 设置自动布局约束,以便所有子视图垂直相互关联,最顶部和最底部的视图与单元格contentView绑定。
  4. 在代码或故事板中设置标签的preferredMaxLayoutWidth属性,使其等于标签的宽度。

答案 2 :(得分:0)

要解决此问题,我将sizeToFit()属性添加到我的标签中。