自动布局中的比例距离约束

时间:2013-07-18 09:27:50

标签: ios ios6 uiviewcontroller autolayout

我无法使用> iOS6中的自动布局实现所需的视图布局。

我有UIView1和UIView3固定到父视图(相应地使用TopSpaceToSuperview,BottomSpaceToSuperView和FixedHeight),当父视图更改高度时,它们的行为与预期一致。

如果我希望在父视图改变高度时它与兄弟姐妹(UIView1和UIView3)保持相同的比例距离,我应该在IB中为UIView2指定哪些约束? (如图所示)

resizing the parent view

1 个答案:

答案 0 :(得分:8)

执行此操作的方法是在视图之间使用不可见的“间隔”视图。

您不能拥有相对大小的空格,因此请改用这些视图。

当前空格在每个空间放置一个UIView。

然后(在代码中,因为你不能在IB中这样做)在它们之间用你想要的正确乘数设置一个高度约束。

[NSLayoutConstraint constraintWithItem1:spacer2
                              attribute:NSLayoutAttributeHeight
                               relation:NSLayoutRelationEqual
                                  item2:spacer1
                              attribute:NSLayoutAttributeHeight
                             multiplier:0.5
                               constant:0];

然后使其他视图“粘贴”在这些间隔视图的上方和下方,间距为0。

然后你只需要隐藏这些视图,自动布局将负责其余部分。

相关问题