对两个对象之间的居中和对象的约束

我的设计要求按钮在两个其他对象之间居中。 其中一个对象位于视图的垂直中心(绿色)。 另一个物体距底边有一定距离(绿色)。 现在的任务是将第三个对象(红色)置于其他两个对象之间。 我正在使用xcode6的新约束,我的视图是在wRegular hRegular模式下。 这对于代码来说很容易,但我正在尝试使用故事板来实现这一目标。

在此处输入图像描述

有很多方法:

  • 在iOS 9中,最简单的方法是定义一个垂直的UIStackedView ,其distribution为“等间距”,然后addArrangedSubview三个圆形子视图

  • iOS 9中的另一个选项是创建两个UILayoutGuide (它代表图像中的两个问号),使用addLayoutGuide将它们添加到共享的超级视图中,并将它们定义为彼此相同的大小。 相应的VFL可能如下所示:

     "V:|[greenView1(==100)]-[layoutGuide1]-[redView(==50)]-[layoutGuide2(==layoutGuide1)]-[greenView2(==greenView1)]|" 
  • 在早期的iOS版本中,您可以创建两个“空间”视图( UIView具有清晰的背景,因此它们不可见),然后定义一个约束,使它们的高度相同,然后在两者之间定义垂直间距约束,而不是使用UILayoutGuide 。五个视图(三个圆圈和两个间隔视图),常数为零。

    它可能看起来像:

    IB场景

    我已经将这些“间隔”视图显示出来,以说明这个想法,但显然你会将它们设置为透明,这样你就无法在UI中看到它们。

    这在逻辑上等同于iOS 9中的UILayoutGuide方法,除了UIView “spacer”视图比UILayoutGuide更多的开销。 但在9之前的iOS版本中,这是解决此问题的常用方法。

我想出了最简单的方法。

新添加的视图为蓝色。在我的情况下,标签应位于中心

只需按以下步骤操作:

  1. 在它们之间添加一个视图两个圆圈
  2. 添加其尾随和领先空间。 (在我的情况下为零至superview)
  3. 从圆圈添加顶部和底部空间。
  4. 现在将您的红色圆圈放在最近添加的视图中
  5. 从Alrignment菜单中水平和垂直居中

对准