Autolayout:添加约束到超级视图,而不是顶部布局指南?

我有一个UIView在我的UIViewController故事板,我想添加一个约束的空间,从顶部边缘的距离。

现在,当我按照惯例通过拖动到ViewController的主视图,我只能得到选项将其设置为顶部布局指南。

这对我来说是一个问题,因为在应用程序中的某一点我将把主视图向上移动20-50px左右,然后会发生什么是我不会移动…因为它不与超视图alignment。

我怎样才能手动在故事板做到这一点,或者我必须以编程方式添加它?

我使用Xcode 6。

约束常数值的右侧有一个箭头。 如果点击它,会popup一个菜单,您可以在其中select要约束的相关内容。 如果select“查看”,则会将其固定到视图的顶部。

在这里输入图像描述

您应该可以通过在故事板中突出显示您想要的视图,然后在顶部菜单中selectEditor > Pin > Top Space to Superview超级视图来完成。


这在XCode 7中已经过时了,请参阅@ PaulGurov的答案。

还可以补充一点,如果你试图插入的视图不是你想要插入视图的直接子视图,那么build议的方法并不是真正有效的。 假设视图层次结构看起来像这样,并且您想将图像视图(本例中的Parallax Image View )固定到视图控制器的视图(在这种情况下为View )。

在这里输入图像描述

要做到这一点,你只需从Parallax Image View 控制 + 拖动View 。 这将显示默认选项,您可以在其中看到“ Vertical Spacing to Top Layout Guide以将“ Parallax Image View到顶部布局指南。

在这里输入图像描述

你想要的是把它钉在视图的顶部(边缘)。 要做到这一点,你必须通过按下Alt切换到另一组约束

在这里输入图像描述

我已经有了一大堆的约束,我只是想改变它们,而不是打破它们。 如果双击约束进行编辑,就会显示出来,然后点击具有“.Margin”的项目,您可以通过select该项目来closures“Relative to Margin”。

选择相对于保证金

丹的答案是有效的。 我只是想说,如果你在y <20的storyBoard中设置你的视图,并通过引脚面板configuration约束,它将设置为超视图:

在这里输入图像描述

在这里输入图像描述

如果视图的高度被设置为0,则不会出现“垂直空间到顶部布局指南”。 垂直空间到底部布局指南将出现,但是,这一定是对大约在2004年苹果内的人有意义。

上面的答案都没有为我工作,而是我必须做一个黑客设置我的子视图的顶部与超视图的顶部,而不是顶部布局指南。

  • 首先,用超视图垂直设置子视图中心。
  • 然后,将subview的Center Y约束和Superview的Top约束更改为Top

你现在很好走。