如何使用Interface Builder在固定高度的页眉和页脚之间拉伸和锚定中央视图?

时间:2012-02-19 19:35:52

标签: ios interface-builder

我有一个UIView,它有3个子视图:标题,中心面板和页脚。页眉和页脚都是固定的高度,我可以设置它们的自动调整属性,使它们的行为符合我的要求:标题保持锚定在顶部并伸展以适应屏幕(纵向或横向),而页脚保持不变固定在底部,并随着屏幕延伸。

我遇到的问题是中心面板。我能够将它锚定在标题下面,但我找不到任何方法来设置此中心面板的自动调整属性,以便它自己伸展,使其底部位于页脚的顶部。我设置的所有内容似乎都将其拉伸到主UIView的底部(因此它在页脚下方拉伸,我不想要)。

我不能通过覆盖layoutSubviews在代码中执行此操作(我认为,除非有办法),因为我正在设置此外部视图的动画,我需要使用动画调整子视图的大小。有没有办法在IB中做到这一点?

1 个答案:

答案 0 :(得分:5)

在代码中:

header.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;
content.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
footer.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;

在Interface Builder中:

部首:

enter image description here

内容:

enter image description here

页脚:

enter image description here

说明:

固定边距(参见下面的注释截图)将保持视图与超视图边界的顶部和底部之间的距离不变。这是你想要的,因为你有一个固定的高度页眉和页脚。

这些东西在代码中绝对可行。您无法在Interface Builder中执行任何操作,也无法在代码中执行任何操作。

enter image description here