动态设置UITableViewCell的高度以包装内容

时间:2015-05-12 19:43:45

标签: ios uitableview swift autolayout uitableviewautomaticdimension

我试图在UITableView中显示3个图像视图以及UILabel中的一些其他信息。附件是我的细胞原型的图像:

enter image description here

目前,我的问题是图像内容正在运行到以下单元格。在我测试的时候,我目前只加载3中最大的图像(我从服务器中将它们从大到小拉出来 - 我还会注意到图像会受到各种尺寸限制) 。

我的问题是,当它的宽度正常工作时,它的高度会超过指标标签并进入下一个单元格。

我现在知道为了使其工作,必须正确配置自动布局约束。但是,我对此感到陌生,并且遇到了一些问题。

首先,我会尝试解释我想要完成的事情:

  1. 描述标签应跨越整个表格单元格。

    • 要做到这一点,我已经将领先,顶级&跟踪超级视图的空格
  2. 我希望右上角和左上角两者都位于描述标签的正下方。要做到这一点,我已经:

    • 将右上角图片的前导空格固定到superview
    • 将左上角图片的尾随空格固定到superview
    • 将两个图像的顶部空间固定到描述标签
    • 固定这两个图像之间的水平间距
  3. 我想在右下方的右下方,为此,我已经:

    • 将右下角图片的前导空格固定到超级视图
    • 将右下角图片的顶部空间固定在右上角的图片
  4. 我希望指标标签显示在左上角图片下方,为此,我已经:

    • 将此标签的顶部空间固定在左上角图片
    • 将指标的底边和尾边固定到超级视图
    • 将指标的前导空间固定在右下方的图片中。
  5. 我确定我在这里做错了,我不应该在任何时候将子视图固定在一起吗?

    另外,对我对此问题的介绍表示歉意。下面是我得到的警告的图像(供您参考,图像1在右上方,图像2在左上方,图像3在右下方)当我查看每个图像视图的约束时,每个方IS占了。

    任何帮助将不胜感激!感谢。

    enter image description here

1 个答案:

答案 0 :(得分:1)

尝试将此代码添加到viewDidLoad:

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.estimatedRowHeight = tableView.rowHeight
    tableView.rowHeight = UITableViewAutomaticDimension
}
相关问题