4

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

我有固定到父视图的 UIView1 和 UIView3(对应于 TopSpaceToSuperview、BottomSpaceToSuperView 和 FixedHeight),并且当父视图更改高度时它们的行为与预期一样。

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

调整父视图的大小

4

1 回答 1

8

这样做的方法是在您的视图之间使用不可见的“间隔”视图。

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

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

然后(在代码中,因为您不能在 IB 中执行此操作)使用您想要的正确乘数在这些之间设置高度约束。

IE

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

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

然后你只需要隐藏这些视图,剩下的就交给自动布局了。

于 2013-07-18T09:37:11.577 回答