在tableview单元格中下载后调整图像大小

时间:2018-06-12 21:17:15

标签: ios uitableview constraints

我从tableview单元格中的URL获取图像。图像视图在tableview单元格中拥抱单元格的右上角和底部。图像的左侧是文本。我希望文本自动设置tableview单元格的高度,我希望图像符合文本设置的大小。我该怎么办?现在它正在工作但是当下载图像时,单元格调整大小变得更大,因为它使用图像的大尺寸。结果,tableview中的单元格非常高。我该如何解决这个问题?

我知道问题是因为我在两个标签之间使用大于或等于约束,如下面的屏幕截图所示。但我需要大于或等于约束。

以下是我的约束:

enter image description here

这就是他们的样子以及我想要的样子: enter image description here enter image description here

2 个答案:

答案 0 :(得分:1)

这似乎是一个或多或少按照你的意愿布置的细胞:

DyZ's solution

第一个标签有三行。第二个标签有四行。第三个标签有一行。第一个标签对单元格内容视图有一个前导约束和一个尾随约束;其他两个标签的前缘和后缘对齐。从上到下有四个约束,内容视图从第一个标签到第二个标签到第三个标签到内容视图。

图像视图的顶部与第一个标签顶部对齐,其底部与第三个标签底部对齐,其前缘约束到第一个标签后缘,其后缘约束到内容视图。

这就是全部。

编辑抱歉,我省略了一块拼图。对于您的使用案例,图片视图的垂直内容抗压力需要低于任何标签的垂直拥抱优先级。这说:"让标签决定我的身高。"您的标签的垂直拥抱优先级为251,因此250可以。

enter image description here

答案 1 :(得分:0)

您已为3个标签设置了约束,现在为图像视图设置等高到您的单元格(90-95%应该这样做)。因此标签控制单元格的高度,然后单元格控制图像视图的高度。

编辑:我认为你使事情变得复杂。你的所有单元格都具有相同的高度(标题,预览,3,4,1行的来源),让它们设置高度,你不需要按照我的建议方式拥抱内容。 我将使用相等的宽度来设置单元格中所有项目的宽度,我将设置水平中心,对于约束之间的间距,您可以使用上下限制或设置垂直中心,您就完成了。

请记住,排在前后的领先并不总是最佳选择,有时候(像这一样)会导致头痛。