Autolayout - 匹配高度,而不是高度(单向)

时间:2014-01-08 14:45:11

标签: ios constraints autolayout

是否可以使用autolayout和界面构建器进行单向大小匹配?

例如,我可能有两个标签。我不希望标签A比标签B大,我希望B具有其内在大小。但是使用“匹配高度/宽度”可能会导致大量文本增加A的大小,因此会增加B的大小。

1 个答案:

答案 0 :(得分:1)

这样做的方法是有两个约束。

  1. 标签与图像视图之间的高度相等约束。
  2. 图像视图的高度约束。
  3. 这将首先使用固定高度约束设置图像视图的高度,然后从图像视图的高度(相等高度)设置标签的高度。

    通过这样做,标签不会随着文本的数量而增长。图像视图有效地固定了它的高度。

    它不会使图像视图变得更大,因为这会与固定高度相矛盾。

    编辑新问题

    好的,为此,你会做同样的事情。在接口构建器中可能有点棘手,但是当我通过IB完成时,我无法确定约束中的item1item2是什么。

    你可以通过添加一行代码来轻松完成......

    [theSuperview addConstraint:[NSLayoutConstraint constraintWithItem:labelA
                                                             attribute:NSLayoutAttributeHeight
                                                             relatedBy:NSLayoutRelationEqual
                                                                toItem:labelB
                                                             attribute:NSLayoutAttributeHeight
                                                            multiplier:1.0
                                                              constant:0.0]];
    

    这正是界面构建器约束的作用,但我不确定你是否可以分辨出item1和item2的方式。

    这是你的“单向”平等高度属性。

    编辑2

    将来某个时间可能会有或可能没有更新,可能会让您在界面构建器中看到item1item2