iOS自动布局将我的视图置于两个视图之间

时间:2014-01-09 15:47:06

标签: ios interface-builder autolayout

如何在Interface Builder中设置autolayout以垂直排列视图,如图所示:

scheme

Top view固定在屏幕顶部边缘,Bottom view固定在屏幕底部边缘。 My view应位于顶视图和底视图之间(距Top view的距离等于距Bottom view的距离)

4 个答案:

答案 0 :(得分:99)

这样做的方法是在可见视图之间有2个不可见的“间隔”视图。

你不能让空间有相同的高度。但是你使用“spacer”视图并将它们放在你的视图之间(与周围视图的间隙为0)。

然后,您将这些观点视为相同的高度,他们会将您的观点推向My View,使其与Bottom ViewTop View具有相同的差距。

即。像这样...

V:|[Top View][spacer1][My View][spacer2(==spacer1)][Bottom View]|

编辑 - 另一种方式

我只是想到了另一种方法。你可以有一个隐藏的容器UIView,它位于Top ViewBottom View之间,没有间隙。

然后将My View放在这个不可见的视图中并垂直居中。

答案 1 :(得分:28)

另一个解决方案是在顶视图 botom视图之间添加一个不可见的视图,并将我的视图放在此视图的中心:< / p>

Centered UIView

答案 2 :(得分:5)

(5年后),我找到了最典型的解决方案:

UILayoutGuide是专门为解决此类任务而引入的(自iOS 9起)。

使用布局指南替换您可能创建的虚拟视图,以表示视图间空间或用户界面中的封装-Ref docs

它在代码中工作得很好,但是很遗憾,Interface Builder不支持自定义布局指南。

答案 3 :(得分:0)

此视频提供了界面生成器中自动布局和约束的惊人概述:https://www.youtube.com/watch?v=1j-Frd5snYc