AutoLayout动态调整UILabel高度和宽度

时间:2016-04-11 16:21:13

标签: ios swift autolayout

我有一个UILabel和一个UIView在Storyboard中并排包含其他子视图。 UIView应该对抗UILabel的右边缘(尾随约束为1),但是我还需要UIlabel(左边的那个)来设置它的宽度等于它的内容大小,除非它达到最大宽度。目测:

|标签文字| | UIViewWithSubviews |

我需要以下约束:

1)标签应该宽度调整宽度,除非它达到最大尺寸,高度也是动态的,这意味着当文本达到最大宽度时,自动换行会将句子分成另一行。和UIview将垂直于UIlabel。

2)UIView应始终与垂直中心的标签1的右边缘对接。

如何在故事板中进行设置?

提前致谢。

2 个答案:

答案 0 :(得分:23)

这是你需要的吗?

enter image description here

以下是我在Interface Builder中的表现。

enter image description here

答案 1 :(得分:8)

1)在UILabel上将“小于或等于”的宽度约束设置为所需的最大宽度。

2)将故事板中UILabel的行数设置为0.这样可以启用您要查找的包装。根本不要设置任何高度约束。

3)设置约束以使UIVabel垂直居中UIView。

4)你现有的其他约束听起来不错。只需确保UILabel具有清晰的x和y位置,例如通过锚定到superview的前缘和上缘。除了垂直居中和与UILabel的前沿对齐之外,还要确保UIView同样具有足够的约束。