如何在Autolayout中设置等距约束

Autolayout我就不过多介绍了,今天说一下怎么设置等距约束。比如一个containerView包含四个button,要求这四个button垂直等距居中排列。
像这样:

even spacing

网上看到一些说法是说在每个Button的间距空隙处添加一些透明的View,然后跟这些Button交叉排列,然后再设置成所有view的间距为0,同时设置这些透明的View等高。这种方案也能达到想要的效果,但不免太费周折了,下面说一下简单的方法,首先看一下xcode里的这个autolayout设置界面:

这里有两个点需要了解一下:

第一个:计算公式

First Item.centerY = Second Item.bottom x Multiplier + Constant

第二个:如图中的 Seconde Item 里的值是 Superview.Bottom,Superview.Bottom的值其实可以理解成 the distance from SuperView.top to SuperView.bottom ,它默认是从Superview的顶点算的,只是设置界面里把这个细节给省略了。

那么现在应该就简单了。

假如我们要做成如上图那样四个button垂直等距排列。

  1. 设置四个button水平居中
  2. 因为是四个button,要垂直等距分部,可以先画在草稿纸上划一条竖线,然后四个点等距排列,这个小学应该就会算吧,第一个点占竖线总长度的1/5,然后2/5,3/5,4/5。
  3. 将第一个button的autolayout设置成如上图的那样。
  4. 后面的button跟第一个类似,只需要把Multiplier的值依次改为 0.4、0.6、0.8就可以了。

下面贴一张图吧,更直观:

是不是很简单呢,我写了个简单的demo在这里,希望对大家有帮助。