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

Gyt*_*tis 4 uiviewcontroller ios autolayout ios6

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

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

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

调整父视图的大小

Fog*_*ter 8

这样做的方法是在视图之间使用不可见的"spacer"视图.

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

当前空间在每个空间放置一个UIView.

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

[NSLayoutConstraint constraintWithItem1:spacer2
                              attribute:NSLayoutAttributeHeight
                               relation:NSLayoutRelationEqual
                                  item2:spacer1
                              attribute:NSLayoutAttributeHeight
                             multiplier:0.5
                               constant:0];
Run Code Online (Sandbox Code Playgroud)

然后使其他视图以0间距"粘贴"在这些间隔视图的上方和下方.

然后你只需要隐藏这些视图,自动布局将处理其余的事情.