固定两个标签中较大的水平间距

时间:2016-11-17 18:30:05

标签: ios autolayout interface-builder xib

我在xib中有五个标签,如附图(下面的链接),它也显示了约束。标签1,2,3和4具有固定的高度约束,其常数值为11,并且这四个标签设置为使用包含文本调整大小,因此它们的宽度随其包含的文本而变化。标签1和标签2具有来自超视图的固定前边距,标签1具有限制来自超视图的固定顶边距的约束,标签2具有限制来自超视图的固定底边距的约束。标签3和4的x和y位置以相同的方式固定。主标签具有约束,使其顶部和底部粘贴到superview的顶部,以使其高度与superview的高度相同。现在,我希望这个主标签与标签1和2的较宽部分具有8个固定的水平间距,并且标签3和标签4的宽度固定的水平间距为8个点。如何实现这一点从最近邻居添加水平空间约束? link to image

1 个答案:

答案 0 :(得分:0)

哈,太棘手了。

8个新约束:

  1. 从主标签到标签1的水平约束

    • 常数:8
    • 关系:等于
    • 优先级:750
  2. 从主标签到标签1的水平约束

    • 常数:8
    • 关系:大于或等于
    • 优先级:1000
  3. SPOILER:此模式会针对其余标签重复

    1. 从主标签到标签2的水平约束

      • 常数:8
      • 关系:等于
      • 优先级:750
    2. 从主标签到标签2的水平约束

      • 常数:8
      • 关系:大于或等于
      • 优先级:1000
    3. 从主标签到标签3的水平约束

      • 常数:8
      • 关系:等于
      • 优先级:750
    4. 从主标签到标签3的水平约束

      • 常数:8
      • 关系:大于或等于
      • 优先级:1000
    5. 从主标签到标签4的水平约束

      • 常数:8
      • 关系:等于
      • 优先级:750
    6. 从主标签到标签4的水平约束

      • 常数:8
      • 关系:大于或等于
      • 优先级:1000
    7. 为什么?怎么样?

      第一个约束条件是,“如果可能,请在主标签和标签1之间加上8 pt”。这可确保您的主标签尝试扩展到可能的最大尺寸。

      第二个约束条件是,“绝不允许主标签在标签1之前侵占8 pt水平空间”。这使得主标签不会与标签1重叠,即使标签2足够小以便以此方式拉动它。