是否可以使用AutoLayout设置UIView相对于其他UIView高度的顶部?

时间:2014-05-10 21:23:16

标签: ios uiview autolayout

是否可以使用AutoLayout将UIView的{​​{1}}设置为相对于其他top的{​​{1}}?换句话说,我想根据屏幕尺寸的高度给出不同的顶部值。

例如,我希望下图中的第三个结果不是秒。 example

1 个答案:

答案 0 :(得分:0)

为了达到瞄准的目的,你可以使用一点" hack",添加三个附件UIView(背景清晰):

  • 在蓝色UIView上方查看#1 ,约束= 0到Top Layout Guide
  • 在蓝色和紫色视图之间查看#2
  • 紫色UIView下面的
  • 查看#3 ,约束= 0到Bottom Layout Guide

接下来,您需要在视图#1和#2 之间以及视图#2和#3 之间添加另外两个约束Equal Widths

最后,您需要在所有视图之间添加Vertical Spacing约束(= 0),将每个视图与下面(或结束)的视图相关联。这里的关键是将它们锁定在它们之间,这样垂直布局就不会很暧昧。

现在你只需要为blue&添加一个特定的高度约束。紫色视图,如果屏幕尺寸发生变化,它们将保持原位浮动。

  

注意#1:请务必将这些附件视图限制在主ViewController视图中,以便将它们置于中心位置。使它们适合父宽度

     

注意#2:如果您之前不知道自己的身高,此解决方案将工作。您可以尝试将某些约束设置为Greater Than,同时使用优先级,但我没有对其进行测试。

界面生成器截图

Interface Builder to achieve equally distributed views