我有一个UITableView,其中填充了一种类型的自定义UITableViewCell。每个单元格包含一个标题(UILabel),字幕(UILabel)和缩略图(UIImageView),如下所示。
所有三个子视图的宽度都是固定的,但是只有字幕标签具有固定的高度。标题标签的高度根据文本的数量而变化。我已将标题标签的numberOfLines
设置为0以反映这一点。
我的目标:单元格的高度应由标题标签的高度确定。换句话说,像元高度应为两个标签高度之和加上三个垂直填充间隙的总和。图像高度应设置为单元格的最终高度。
我当前的实现方式:我设置了以下自动布局约束:
另外:
numberOfLines
= 0 contentMode
=外观填充clipToBounds
= true 问题:图像高度不考虑标签的高度,因此单元格的高度设置为图像的整个高度,并且标题标签垂直拉伸。考虑到我曾经使用过的约束,这是可以理解的,但是我不想发生这种情况。
我的问题:如何限制UIImageView的高度以尊重单元格的高度(由动态标签高度决定),而不是让单元格的高度尊重UIImageView的高度?
我的环境:
答案 0 :(得分:3)
尝试将thumbnail
垂直compression resistance
设置为低于title
垂直hugging priority
。在代码中它将如下所示:
thumbnail.setContentCompressionResistancePriority(.defaultLow, for: .vertical)
titleLabel.setContentHuggingPriority(.required, for: .vertical)
答案 1 :(得分:1)
我将解释垂直约束使之成为可能。
您的单元格现在具有基于上述约束的高度。现在,您只需要确保将图像视图放置在此高度内即可。
示例: