【问题标题】:Autolayout: Add constraint to superview and not Top Layout Guide?自动布局:将约束添加到超级视图而不是顶部布局指南?
【发布时间】:2015-04-30 05:34:39
【问题描述】:

我在情节提要中的 UIViewController 中有一个 UIView,我想在该空间上添加一个约束,该空间距离顶部边缘有一段距离。

现在,当我按常规按 ctrl + 拖动到 ViewController 的主视图时,我只能选择将其设置为顶部布局指南。

这对我来说是个问题,因为在应用程序的某一时刻,我要将主视图向上移动 20-50 像素左右,然后发生的情况是我拥有的视图不会移动......因为它与超级视图不对齐。

如何在情节提要中手动执行此操作,还是必须以编程方式添加?

我使用的是 xcode 6。

【问题讨论】:

标签: ios storyboard autolayout nslayoutconstraint


【解决方案1】:

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

【讨论】:

  • 哈利路亚!当他们移除 Editor-->Pin 菜单时,我不知道我要做什么。
  • 不敢相信我以前没有看到过。太棒了。
  • 对于像我一样无知的人来说只是一个注释 --> 除非您添加约束的视图位于顶部布局指南下方,否则您可能无法进行此更改。我在顶部布局指南上方有一个视图,并且“顶部布局指南”不是下拉菜单中的选项。对于像我这样的非新手来说,这可能是一个“duh”声明:)
  • 关于 Xcode 的那些细微之处。做这么多。 :)
  • 只是一个让我感到困惑的快速澄清:尽管图像已勾选顶部布局指南,但如果您想将视图固定到视图的顶部,例如设备的最顶部,然后选择“查看"。
【解决方案2】:

您应该可以通过在情节提要中突出显示您想要的视图,然后在顶部菜单中选择 Editor > Pin > Top Space to Superview 来实现。


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

【讨论】:

  • 像魅力一样工作 - XCode 6.3
  • 他们已经从 Xcode 7 的编辑器菜单中删除了“pin”。有什么新的解决方案吗?
【解决方案3】:

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


还可以补充一点,如果您尝试固定的视图不是您要固定到的视图的直接子视图,则建议的方法实际上并不有效。假设视图层次结构看起来像这样,并且您想将图像视图(在本例中为 Parallax Image View)固定到视图控制器的视图(在本例中为 View)。

要做到这一点,您只需 Control + 拖动Parallax Image ViewView。这提供了默认选项,您可以在其中看到 Vertical Spacing to Top Layout Guide 以将 Parallax Image View 固定到顶部布局指南。

您想要将其固定到视图的顶部(边距)。为此,您必须通过按 Alt

切换到另一组约束

【讨论】:

  • 非常有用的提示。这实际上解决了我的问题。
  • 它适用于我,但我不知道如何同时添加多个约束。现在,我得一一添加,需要时间。
【解决方案4】:

我已经有一大堆限制,我只是想改变它们而不是打破它们。事实证明,如果您双击要编辑的约束,然后单击具有“.Margin”的项目,您可以通过选择该项目来关闭“Relative to Margin”。

【讨论】:

  • 这就是我来这里时所寻找的!谢谢
【解决方案5】:

丹的回答有效。我只是想说,如果你在storyBoard中设置你的视图在y

【讨论】:

    【解决方案6】:

    如果不小心将视图的高度设置为 0,则不会出现 Vertical Space to Top Layout Guide。但是,会出现垂直间距到底部布局指南,这对于大约 2004 年左右的 Apple 内部人员来说一定是有意义的。

    【讨论】:

      【解决方案7】:

      以上答案都不适合我,相反,我必须使用超级视图的顶部而不是顶部布局指南来设置我的子视图的顶部。

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

      你现在可以走了。

      【讨论】:

        猜你喜欢
        • 2021-08-27
        • 2014-11-15
        • 1970-01-01
        • 2014-05-09
        • 2021-04-09
        • 2020-10-13
        • 1970-01-01
        • 1970-01-01
        • 2014-06-23
        相关资源
        最近更新 更多