在UITableViewCell中带有图片的动态标签?

时间:2018-08-09 14:48:05

标签: ios swift uitableview

我们在UITableview中有两个(第一个标签动态高度)标签,一个标签,并且我们的图片大小静态假定为120 * 70

我们正在将图像底部约束设置为单元格超级视图,但是当Label内容高度大于图像高度时,第二个标签会自动进入单元格内部。

我们正在使用 UITableViewAutomaticDimension

在这里,我们很困惑为标签设置约束,如何为标签和图像同时设置高度。

如果我们尝试使用底部约束来标记图像,并将高度固定为图像,将宽度固定为图像,则空格将出现在单元格底部。

我的单元格设计如下图所示:

Cell design Image

检查我的输出并遵守以下限制条件

输出:

image

约束图片:

Image

1 个答案:

答案 0 :(得分:4)

您可以通过将底部标签和底部图片的底部约束都设置为大于或等于此限制来轻松实现此目的。

首先,请确保您正在使用:

    tableView.rowHeight = UITableViewAutomaticDimension
    tableView.estimatedRowHeight = 100

因此单元格/行将自动调整大小以适合内容。

对于细胞原型,我有(背景颜色,因此我们可以看到框架):

  • 多行标签将顶部8和前导8约束(从超级视图开始,不使用边距)
  • 图像视图约束顶部8和尾部0(从超级视图开始,不使用边距),宽度119高度87(基于发布的图像)< / li>
  • 1行标签限制了前导和尾随到多行标签,并且顶部4到多行标签
  • 多行标签也被约束尾随8到图像视图

现在关键是接下来的两个约束...

  • >= 8处的1行标签的底部限制为superview的底部
  • >= 8的图像视图的底部限制为超级视图的底部

enter image description here

现在,像元高度将自动扩展以适合较高的元素:

enter image description here

以及在没有彩色背景的情况下的外观:

enter image description here

完整的项目可以在这里找到:https://github.com/DonMag/AnotherExpandingCell