如何在superview中使用自动布局集中两个标签?

时间:2017-02-02 16:00:54

标签: ios autolayout nslayoutconstraint ios-autolayout

我有一个固定宽度的标签,第二个是根据文字的可变长度。 我只想集中在超级视图(UIView)中的两个标签。

请告诉我如何通过自动布局实现此目的。 感谢

1 个答案:

答案 0 :(得分:0)

enter image description here

让我们尝试查看上图中的结构:

父视图在图像中是橙色部分。 你有2个标签:FixLength和VariableLength,并希望集中它们。我的解决方案是在另一个视图(ViewContainer)上添加2个标签,并在ParentView上集中ViewContainer。需要的约束是

1.ViewContainer

  • 将中心X与晚餐视图对齐
  • 将中心Y与晚餐视图对齐
  • 内容拥抱优先级250 - 250
  • 内容压缩抗性优先级:250 - 250

2.FixedLength:

  • 领先的空间到晚餐观点:0
  • 顶级空间到晚餐视图:0
  • 宽度等于:50(或您想要的任何值)
  • 高度等于:20(或您想要的任何值)

3.VariableLength

  • 底部空间到晚餐视图:0
  • 顶级空间到晚餐视图:0
  • 尾随空间到晚餐视图:0
  • 领先空间为FixedLength:10(或您想要的任何值)
  • 内容拥抱优先级:750 - 750
  • 内容压缩抗性优先级:750 - 750

这里最重要的部分是:VariableLength中的内容拥抱优先级和内容压缩优先级必须高于ViewContainer

添加约束后,如果布局有一些警告,只需更新帧以删除警告(但仍保留约束)

我不确定这是最好的解决方案,但它对我有用。希望这有帮助!