我的设计要求按钮位于其他两个对象之间。其中一个对象位于视图的垂直中心(绿色)。另一个对象距离底部边缘有一段距离(绿色)。现在的任务是将第三个对象(红色)置于其他两个对象之间。我正在使用 xcode6 的新约束,并且我的视图处于 wRegular hRegular 模式。使用代码这很容易,但我正在尝试使用情节提要来完成此操作。
问问题
6582 次
2 回答
17
有多种方法:
在 iOS 9 中,最简单的方法是定义一个
UIStackedView
具有distribution
“等间距”的垂直,然后addArrangedSubview
是三个圆形子视图iOS 9 中的另一个选项是创建两个
UILayoutGuide
(这将代表图像中的两个问号),将它们添加到共享的超级视图中,并将它们addLayoutGuide
定义为彼此相同的大小。相应的 VFL 可能如下所示:"V:|[greenView1(==100)]-[layoutGuide1]-[redView(==50)]-[layoutGuide2(==layoutGuide1)]-[greenView2(==greenView1)]|"
UILayoutGuide
在早期的 iOS 版本中,您可以创建两个“空间”视图(UIView
背景清晰,因此它们不可见),而不是使用,然后定义一个约束,使它们的高度相同,然后定义五个视图之间的垂直间距约束(三个圆圈和两个间隔视图),常数为零。它可能看起来像:
我已经让那些“间隔”视图可见,以说明这个想法,但显然你会将它们设置为透明的,这样你就无法在 UI 中看到它们。
这在逻辑上等同
UILayoutGuide
于 iOS 9 中的方法,只是UIView
“间隔”视图的开销比UILayoutGuide
. 但在 iOS 9 之前的版本中,这是解决此问题的常用方法。
于 2014-09-17T19:16:04.870 回答