swift:根据内部约束调整UIView高度

时间:2014-09-26 07:58:26

标签: ios swift uiview constraints height

我有一个UIView容器,它对超级视图有左/上/右约束。所以尺寸是动态的,除了高度。 它没有底部约束

此视图包含内容(标签等)。这些元素也有相互约束和超级视图(以证明其合理性)

Label1的

- > Label2.top:Label1.bottom(超级视图的左侧和右侧)

Label2的

- > Label3.top:Label2.bottom(超级视图的左侧和右侧)

LABEL3

等等。

标签具有动态尺寸,因此,我无法确定标签的高度。它使用属性字符串。因此,计算子视图rects不是解决方案

我想要实现的是考虑到约束来设置主容器的适当高度 我厌倦了谷歌搜索,我得到的是一些框架rect手动计算,这不适用于约束。

这是内部元素的约束:

    self.view.addConstraint(NSLayoutConstraint(
        item:self.view, attribute:.Trailing,
        relatedBy:.Equal, toItem:label,
        attribute:.Trailing, multiplier:1, constant:0))

    // left
    self.view.addConstraint(NSLayoutConstraint(
        item: label, attribute:.Leading,
        relatedBy:.Equal, toItem:self.view,
        attribute:.Leading, multiplier:1, constant:0))

    // Top
    self.view.addConstraint(NSLayoutConstraint(
        item:parentView, attribute: positionConstraint,
        relatedBy:.Equal, toItem:label,
        attribute:.Top, multiplier:1, constant:0))

请帮帮我!

1 个答案:

答案 0 :(得分:0)

我刚刚在我正在构建的应用中遇到同样的问题。我使用了Storyboard编辑器,所以我对编程组件并不完全确定,但是如果在视图中的所有组件中添加垂直间距的约束,那么您只需要设置一个底部空间对视图内底部组件的约束。

http://cl.ly/image/2Y0y121s1e2V/download/Image%202014-11-19%20at%2013%3A59%3A15.png