使用autolayout将顶部对齐到大标签

时间:2018-03-17 13:37:00

标签: uitableview autolayout

我在UITableViewCell中有两个标签,一个在左边,一个在右边。 如果标签1的高度高于标签2,则标签的高度可能不同,图标顶部为label1.bottom + 30。如果标签2的高度高于标签1,则icon.top = label2.bottom + 30。如何设置约束。 我试图使用不等式约束,但没有运气。

1 个答案:

答案 0 :(得分:0)

您希望自己的图标低于两个标签中较低的30。诀窍是使用不等式约束并设置不同的优先级。

  1. 设置icon.top = label1.bottom + 30.为此约束赋予低于1000的优先级。
  2. 设置icon.top> = label2.bottom + 30.保留此默认优先级为1000。
  3. 然后,如果label1的底部较低,则图标将保持30,因为两个约束都可以得到满足。如果label2的底部较低,自动布局将破坏较低优先级约束,以使图标30远离label2。虽然它突破了使图标30低于label1的约束,但它使值尽可能接近30

    这是一个演示:

    滑块可更改RedView的高度。关键限制是:

    1. BlueView.top> = GreenView.bottom + 30
    2. BlueView.top = RedView.bottom + 30 @ Priority 999
    3. Demo in a simulator