我的设计要求按钮在两个其他对象之间居中。其中一个对象位于视图的垂直中心(绿色)。另一个物体距底边有一定距离(绿色)。现在的任务是将第三个对象(红色)置于其他两个对象之间。我正在使用xcode6的新约束,我的视图是wRegular hRegular模式。这对于代码来说很容易,但我正在尝试使用故事板来实现这一目标。
答案 0 :(得分:16)
有很多方法:
在iOS 9中,最简单的方法是定义一个垂直UIStackedView
,distribution
为“等间距”,然后addArrangedSubview
三个圆形子视图
iOS 9中的另一个选项是创建两个UILayoutGuide
(代表图像中的两个问号),将它们添加到共享超级视图addLayoutGuide
并将其定义为彼此大小相同。相应的VFL可能如下所示:
"V:|[greenView1(==100)]-[layoutGuide1]-[redView(==50)]-[layoutGuide2(==layoutGuide1)]-[greenView2(==greenView1)]|"
在早期的iOS版本中,您可以创建两个“空格”视图(UILayoutGuide
,而不是使用UIView
,而不是使用UILayoutGuide
,因此它们不可见)然后定义一个约束它们的高度相同,然后在五个视图(三个圆圈和两个间隔视图)之间定义垂直间距约束,常数为零。
看起来像是:
我已经将这些“间隔”视图显示出来,以说明这个想法,但显然你会将它们设置为透明,这样你就无法在UI中看到它们。
这在逻辑上等同于iOS 9中的UIView
方法,但UILayoutGuide
“spacer”视图只比{{1}}带来更多的开销。但在9之前的iOS版本中,这是解决此问题的常用方法。
答案 1 :(得分:1)