对两个对象之间的居中和对象的约束
我的设计要求按钮在两个其他对象之间居中。 其中一个对象位于视图的垂直中心(绿色)。 另一个物体距底边有一定距离(绿色)。 现在的任务是将第三个对象(红色)置于其他两个对象之间。 我正在使用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
。五个视图(三个圆圈和两个间隔视图),常数为零。它可能看起来像:
我已经将这些“间隔”视图显示出来,以说明这个想法,但显然你会将它们设置为透明,这样你就无法在UI中看到它们。
这在逻辑上等同于iOS 9中的
UILayoutGuide
方法,除了UIView
“spacer”视图比UILayoutGuide
更多的开销。 但在9之前的iOS版本中,这是解决此问题的常用方法。
我想出了最简单的方法。
只需按以下步骤操作:
- 在它们之间添加一个视图两个圆圈
- 添加其尾随和领先空间。 (在我的情况下为零至superview)
- 从圆圈添加顶部和底部空间。
- 现在将您的红色圆圈放在最近添加的视图中
- 从Alrignment菜单中水平和垂直居中