从动态高度角度获取动态垂直间距

时间:2016-05-11 13:01:45

标签: ios objective-c uiview autolayout ios-autolayout

我有一个应用程序,他们是一个屏幕。其中UIView内包含一些UIView

现在UIView(父级)的高度是动态的。它根据屏幕高度进行调整。

我已将UIView(孩子)放入其中。

我的UIView(父母)没有约束。

现在,

我添加了以下COnstraints:

父母约束View

  

上,下,领先,尾随

约束已添加到SubViews

  

UIView-1:领先,尾随,顶部,高度

     

UIView-2:前导,尾随,垂直间距(UIView 1),高度

     

UIView-3:前导,尾随,垂直间距(UIView 2),高度

     

UIView-4:前导,尾随,垂直间距(UIView 3),高度

现在我收到了这个屏幕:

enter image description here

当我将UIView 4约束更改为:

  

UIView-4:前导,尾随,垂直间距(UIView 3),高度,底部

我正在看这个屏幕:

enter image description here

我的父视图从340缩小为217

但我想管理视图之间的垂直间距以增加或减少。我缺少什么约束。

修改

我已将xib大小更改为3.5英寸,然后更改为自由形式。现在我有这么大的空间。如何添加间隔视图?

enter image description here

2 个答案:

答案 0 :(得分:0)

您应该使用UIStackView进行此类布局。

或者,如果你想保持与iOS7和8的兼容性,你应该使用spacer视图。这意味着您必须在视图之间的空白区域中添加一些虚拟视图,并在所有视图之间设置相等的高度约束。

答案 1 :(得分:0)

  1. 使用自由格式布局
  2. 格式排列视图

    enter image description here

  3. 完成布局后

  4. 选择所有红色视图,并给出所有4个约束,并且另外给出相等的高度约束
  5. 现在选择所有绿色间隔视图并给出所有4个约束(顶部,前导,轨迹,底部)并另外给出相等的高度约束

  6. 为绿色间隔视图高度约束创建属性或出口,您可以更改它以增加或减少红色视图高度!