如何在Interface Builder中设置autolayout以垂直排列视图,如图所示:
Top view
固定在屏幕顶部边缘,Bottom view
固定在屏幕底部边缘。 My view
应位于顶视图和底视图之间(距Top view
的距离等于距Bottom view
的距离)
答案 0 :(得分:99)
这样做的方法是在可见视图之间有2个不可见的“间隔”视图。
你不能让空间有相同的高度。但是你使用“spacer”视图并将它们放在你的视图之间(与周围视图的间隙为0)。
然后,您将这些观点视为相同的高度,他们会将您的观点推向My View
,使其与Bottom View
和Top View
具有相同的差距。
即。像这样...
V:|[Top View][spacer1][My View][spacer2(==spacer1)][Bottom View]|
编辑 - 另一种方式
我只是想到了另一种方法。你可以有一个隐藏的容器UIView
,它位于Top View
和Bottom View
之间,没有间隙。
然后将My View
放在这个不可见的视图中并垂直居中。
答案 1 :(得分:28)
答案 2 :(得分:5)
(5年后),我找到了最典型的解决方案:
UILayoutGuide
是专门为解决此类任务而引入的(自iOS 9起)。
使用布局指南替换您可能创建的虚拟视图,以表示视图间空间或用户界面中的封装-Ref docs
它在代码中工作得很好,但是很遗憾,Interface Builder不支持自定义布局指南。
答案 3 :(得分:0)
此视频提供了界面生成器中自动布局和约束的惊人概述:https://www.youtube.com/watch?v=1j-Frd5snYc