12

我的设计要求按钮位于其他两个对象之间。其中一个对象位于视图的垂直中心(绿色)。另一个对象距离底部边缘有一段距离(绿色)。现在的任务是将第三个对象(红色)置于其他两个对象之间。我正在使用 xcode6 的新约束,并且我的视图处于 wRegular hRegular 模式。使用代码这很容易,但我正在尝试使用情节提要来完成此操作。

在此处输入图像描述

4

2 回答 2

17

有多种方法:

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

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

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

    它可能看起来像:

    IB场景

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

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

于 2014-09-17T19:16:04.870 回答
1

我想出了最简单的方法。

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

只需按照以下步骤操作:

  1. 在两个圆圈之间添加一个视图
  2. 添加其尾随和前导空格。(在我的情况下,从零到超级视图)
  3. 从圆圈中添加顶部和底部空间。
  4. 现在把你的红色圆圈放在最近添加的视图中
  5. 从对齐菜单使其水平和垂直居中

结盟

于 2017-11-22T07:43:48.990 回答