这就是我想要实现的目标:
我希望图像在单元格中垂直居中,并且两个标签(放置在另一个视图中)相对于图像垂直居中(作为一组 - 这就是它们在视图中的原因)。 / p>
以下是我的尝试:
第二个标签的内容拥抱值较低。正如您所看到的,当存在小文本时,由于内容拥抱,第二个标签中的文本不会直接放在第一个标签下面,因此具有大量空白空间。此外,第一个标签应放在较低的位置。
当有足够的文字时,它看起来不错。
当文字较小时,我该如何处理案件?
感谢。
答案 0 :(得分:1)
尝试从堆栈视图设置标签和图像组。
答案 1 :(得分:1)
我使用其他建议来使用堆栈视图以及此处接受的答案,以使标签的对齐起作用:How to center both vertical and horizontal inside a UIStackView。我不会触及内容拥抱优先级。
首先,我设置一个水平堆栈视图,用作容器。我将它固定到单元格的顶部,底部,前导和尾随两端。它的大小将是细胞的大小。其对齐是中心。这意味着它将使其组件垂直居中。 分布为填充 - 组件将占据整个空间水平。
我将图片视图和垂直堆栈视图作为其组件。我设置了固定高度和宽度的图像视图。我猜这就是想要的东西。我把这两个标签作为第二个堆栈视图的组件。 垂直堆栈视图具有对齐填充。它会填充所有空间水平。 分发也是填充。它将填充所有空间垂直,但这个空间是固有的,并且根据我的理解由标签设置。所以它会随着内容的增长而缩小。
如果我正确理解了要求,就是这样。
还有一件事。因为我看到您发布的最后一张图片中的文字在某个时刻被剪切 - 如果这是您想要的,请在第二个标签处设置一个高度约束,即小于或等于您选择的某个数字,因此标签无法生长超越它。
答案 2 :(得分:0)
UIStackView
可以让你做到这一点。
在几行文字的情况下,您有两种选择。
首先,将UILabel
包装在另一个UIStackView
中,并将轴设置为“水平”,将“对齐”设置为“顶部”。
如果没有做,请检查this线程垂直对齐标签。