如何在Swift中将标签与其旁边的ImageView对齐?

问题描述:

我正在尝试使用动态内容在UILabel旁边有一个UIImageView。两者都在StackView之内。如何在Swift中将标签与其旁边的ImageView对齐?

enter image description here

目前我使用的Fill对齐和分布。将其更改为其他选项之一,将ImageView(固定约束条件)的大小更改为30x30。StackView的左右前导限制为0

这是我目前:

enter image description here

的是什么,我想:

enter image description here

如何做,我需要建立StackView存档我的目标?非常感谢帮助。

您可以尝试使用嵌入水平堆栈视图的垂直堆栈视图。

enter image description here

第一堆叠视图具有竖直轴线。它的对齐是中心的,分布是填充(默认)。此堆栈视图具有以下约束:跟踪到超级视图,导致超级视图和顶部空间到顶部布局指南。

第二个堆栈视图包含图像视图和标签。它的轴是水平的。填充对齐和分布设置为其默认值。间距设置为10(可根据需要进行更改)。这个堆栈视图没有限制。

图像视图的高度和宽度约束分别为30。

该标签没有限制。

图像视图和标签都有默认的内容拥抱和压缩值。

enter image description here

如果标签具有较长的文本,然后再会出现这样的:

enter image description here

+0

,这很有效。谢谢 –

您是否尝试过操作内容拥抱和内容压缩阻力优先?我相信这些属性可以让你管理图像视图和textView之间的长度距离,并且当你输入越来越多的数据时,堆栈视图不会让你动态地扩展textView,所以我认为操纵拥抱和阻力属性可以给你接近所需的解决方案。

+0

我在哪里可以设置这些属性呢? –

+0

检出属性检查器。我建议你在操作它们之前阅读更多关于这些属性的内容,因为它们可能会变得复杂。 –

这可以通过为图像视图和文本标签创建容器视图,然后将容器视图居中放在原始父视图中来实现。

+0

我不知道如何处理不同的文本标签长度然后 –

+0

也我真的看不出这种方法和使用堆栈视图之间的区别 –

+0

这应该适用于具有动态内容的标签。在容器视图上添加约束条件,使其宽度为图像视图和标签的宽度之和。如果您想将视图居中而不是堆叠视图,则堆叠视图可能不是最佳选择。 –