如何在Swift中将带有ImageView的Label集中在它旁边?

时间:2016-12-17 01:22:09

标签: ios swift

我正在尝试使用动态内容UIImageView旁边的UILabel。两者均在StackView内。

enter image description here

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

这是我目前的:

enter image description here

这就是我想要的:

enter image description here

如何设置StackView以存档我的目标?非常感谢帮助。

3 个答案:

答案 0 :(得分:5)

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

enter image description here

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

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

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

标签没有限制。

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

enter image description here

如果标签的文字较长,那么它将显示如下:

enter image description here

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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