【问题标题】:Why is Use Standard Value grayed out in Storyboard?为什么 Storyboard 中使用标准值显示为灰色?
【发布时间】:2015-03-12 19:47:10
【问题描述】:

我想不通。有人能告诉我为什么以及如何启用“使用标准值”吗?

【问题讨论】:

    标签: ios storyboard nslayoutconstraint


    【解决方案1】:

    标准值是“推荐的视图间距”[1]。相对于边距或安全区域的约束已包含此建议间距。这可能是您看到“使用标准值”选项被禁用的原因。

    要启用“使用标准值”选项,请将约束更改为不再与边距或安全区域相关。您可能还需要取消选中“尊重语言方向”。如果该选项仍然显示为灰色,请尝试打开和关闭“相对于边距”选项——它有时会在 Interface Builder 中卡住。

    [1]https://help.apple.com/xcode/mac/8.0/#/deve7dfb37c9


    我遇到的一些进一步的观察/背景似乎与理解问题有关:

    在安全区域布局指南之前,我们有前导/尾随边距和顶部/底部布局指南:

    • 我知道将视图固定到前导边距和尾随边距无法访问“使用标准值”,因为这些边距已经从边缘提供了标准值。
    • 另一方面,顶部和底部布局指南仅指示顶部和底部边缘延伸到的位置,不包括导航栏和状态栏等。与前导边距和尾随边距不同,默认情况下它们不提供与这些条的标准距离等,因此固定到顶部和底部布局指南的约束确实可以访问“使用标准值”。

    现在不推荐使用顶部和底部布局指南,取而代之的是安全区域布局指南,它执行类似的功能,指示不会被 UIKit 组件(例如标签栏、导航栏等)覆盖的区域。至少在 iOS 中(tvOS 似乎是另一回事)安全区域似乎并不表示边缘 + 标准距离(正如前导和尾随边距所做的那样)。但是约束也无权访问“使用标准值”。 (见下面变灰) 这意味着如果我们使用安全区域布局指南将视图限制在边缘,我们将无法再访问标准距离。

    这是疏忽还是我遗漏了什么?

    它看起来也非常有问题,例如:

    • 错误 #1 - 如果将情节提要迁移到安全区域布局约束,顶部和底部约束似乎确实选择了“使用标准值”(尽管“标准值”似乎为 0)。但是,如果您更改为另一个值,则无法返回“使用标准值”。都很奇怪!
    • 错误 #2 - 如果您有一个很好的老式前导或尾随约束固定到设置为“相对于边距”的根视图,并且您切换到“安全区域”,则“相对于边距” " 选项当然会消失,但您不能“使用标准值”。但是 - 如果您在切换到“安全区域”之前关闭“相对于边距”,则“使用标准值”可用于安全区域布局边距。我什至遇到过需要打开“相对于边距”然后再次关闭才能“使用标准值”的情况。也就是说,这个“标准值”似乎是 0,所以即使它被选中也似乎不起作用。[2]

    [2]https://forums.developer.apple.com/thread/87028

    【讨论】:

      【解决方案2】:

      这是因为你的第一个项目是相对于边距设置的

      【讨论】:

      • 那又怎样?你能解释一下为什么这很重要吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-09
      • 1970-01-01
      • 2011-03-26
      • 2020-11-26
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      相关资源
      最近更新 更多