代码之家  ›  专栏  ›  技术社区  ›  Nick

水平设置标签的自动布局约束

  •  4
  • Nick  · 技术社区  · 9 年前

    我有一个带两个UILabel的酒吧:

    [LeftMsg                          RightMsg]
    

    1. RightMsg
    2. LeftMsg 左对齐并占用剩余的空间。

    例如,如果 左侧消息 读取 "This very long message does not fit the bar" ,必须显示如下:

     [The very long message does n... RightMsg]
    

    我设置水平自动布局约束如下:

    LeftMsg.leading = Superview.leading
    RightMsg.trailing = Superview.trailing
    LeftMsg.trailing <= RightMsg.leading
    

    (如果我在最后一个约束中使用相等,XCode会告诉我存在内容优先级不明确的情况)。

    现在它的工作原理如下:

     [The very long message does not fit the...]
    

    有人能建议我如何正确设置约束以实现我的需要吗?

    3 回复  |  直到 9 年前
        1
  •  7
  •   woogii    9 年前

    我认为您可以为左侧标签设置比右侧消息标签更低的水平拥抱优先级,同时为右侧消息标签设置比左侧消息标签更高的水平抗压优先级。

    例如,您可以这样为标签设置内容拥抱优先级和抗压优先级。

    左标签:内容拥抱优先级(H:250,V:251) 抗压优先级(H:750,V:750)

    右侧标签:内容拥抱优先级(H:251,V:251) 抗压优先级(H:751,V:750)

    您可以在此查看有关内容拥抱和抗压性的更多信息 tutorial .

        2
  •  4
  •   Bista    9 年前
    1. 设置 含量抗压性能 将左侧标签的 750 .

    content Compression resistance property

    1. 设置 内容拥抱优先级 右标签的 250 .

    Content Hugging Priority

        3
  •  -3
  •   Gaurav    9 年前

    请遵循这一点,

    • 首先在视图上设置两个标签。

      enter image description here

      1. 设置视图的约束为顶部、底部、左侧和水平居中 排列
      2. 拖尾。
      3. “右侧”标签的设置约束为“顶部”、“底部”和“尾部”。
      4. 选择两个标签并设置“相等高度”和“相等宽度”。