Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 自动布局:是否将约束添加到superview而不是顶部布局指南?_Ios_Storyboard_Autolayout_Nslayoutconstraint - Fatal编程技术网

Ios 自动布局:是否将约束添加到superview而不是顶部布局指南?

Ios 自动布局:是否将约束添加到superview而不是顶部布局指南?,ios,storyboard,autolayout,nslayoutconstraint,Ios,Storyboard,Autolayout,Nslayoutconstraint,我在故事板中的UIViewController中有一个UIView,我想在该视图上添加一个距离上边缘一定距离的空间约束 现在,当我通过按住ctrl键并拖动到ViewController的主视图执行常规操作时,我只获得将其设置为“顶部布局向导”的选项 这对我来说是个问题,因为在应用程序的某一点上,我将把主视图向上移动20-50px左右,然后发生的事情是我的视图将不会移动。。。因为它没有与superview对齐 我如何在故事板中手动执行此操作,或者我必须以编程方式添加它 我使用的是xcode 6。您

我在故事板中的UIViewController中有一个UIView,我想在该视图上添加一个距离上边缘一定距离的空间约束

现在,当我通过按住ctrl键并拖动到ViewController的主视图执行常规操作时,我只获得将其设置为“顶部布局向导”的选项

这对我来说是个问题,因为在应用程序的某一点上,我将把主视图向上移动20-50px左右,然后发生的事情是我的视图将不会移动。。。因为它没有与superview对齐

我如何在故事板中手动执行此操作,或者我必须以编程方式添加它


我使用的是xcode 6。

您应该能够通过在情节提要中突出显示所需的视图,然后在顶部菜单中选择
Editor>Pin>Top Space to Superview来实现这一点


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


丹的答案是有效的。我只想声明,如果您在storyBoard中将视图设置为y<20,并通过pin面板配置约束,它将设置为superview:


约束常量值右侧有一个箭头。如果单击它,将弹出一个菜单,您可以在其中选择要使约束相对于的对象。如果选择“视图”,则会将其固定到视图顶部


我已经有了一大堆约束,我只是想改变它们,而不是打破它们。如果双击要编辑的约束,然后单击具有“.Margin”的项目,则只需通过选择该项目来关闭“相对于Margin”


TL;DR:您可以通过按键盘上的Alt键来限制边距。


还可以补充一点,如果您尝试固定的视图不是您要将其固定到的视图的直接子视图,则建议的方法实际上是无效的。假设视图层次结构是这样的,您希望将图像视图(
视差图像视图
在本例中)固定到视图控制器的视图(
视图

要做到这一点,您只需控制并从
视差图像视图
拖动到
视图
。这将显示默认选项,您可以在其中查看顶部布局指南的
垂直间距
,以将
视差图像视图
固定到顶部布局指南

您需要将其固定到视图的顶部(边距)。为此,必须按Alt切换到其他约束集


如果视图的高度意外设置为0,则不会显示“垂直空间到顶部”布局指南。然而,将出现垂直空间到底部的布局指南,这对苹果内部的人来说一定是有意义的。上述答案对我来说都不管用,相反,我不得不做一个修改,将子视图的顶部设置为superview的顶部,而不是顶部布局指南

  • 首先,使用superview垂直设置子视图中心
  • 然后,将子视图和超级视图的中心Y约束更改为顶部约束

现在可以开始了。

您可以拖放到左侧文档大纲中的正确实体吗?-这个屏幕截图中的场景对象:我也试过了,同样的结果就像一个charm-XCode 6.3一样,他们已经从XCode 7的编辑器菜单中删除了“pin”。有新的解决方案吗?哈利路亚!当他们删除编辑器-->Pin菜单时,我不知道该怎么办。真不敢相信我以前没有看到。太棒了。请注意,对于像我这样无知的人-->除非要添加约束的视图位于顶部布局指南下方,否则您可能无法进行此更改。我在顶部布局指南上方有一个视图,“顶部布局指南”不是下拉菜单中的选项。对于像我这样的非新手来说,这可能是一个“duh”的说法:)这是关于那些小的Xcode细节。那太多了。:)只是一个让我困惑的快速澄清:尽管图像勾选了顶部布局指南,如果你想将视图固定到视图的顶部,就像设备的顶部一样,那么选择“视图”。这就是我来这里时想要的!非常有用的提示。这实际上解决了我的问题。它对我很有效,但我不知道如何同时添加多个约束。现在,我必须一个接一个地添加,这需要时间。