【问题标题】:"Fixed leading and trailing constraints may cause clipping" bug?“固定的前导和尾随约束可能导致剪辑”错误?
【发布时间】:2018-02-23 21:21:03
【问题描述】:

这里有this other question 解决了类似的问题,但在这种情况下,Xcode 的行为是正确的,只是烦人。

然而,就我而言,我认为这实际上是一个错误:

该标签可以有无限数量的行,所以它永远不会被剪裁,文本只会中断。

它适用于每个本地化:

我希望标签居中,并且我希望文本距边距至少 20 像素,因此我为前导和尾随设置了固定约束。 Xcode 希望我将其中一个更改为“大于或等于”约束,但在这种情况下,文本不会完全居中(我尝试过)。

我想要的是不会太靠近边缘的居中文本,但现在我无法在不触发该警告的情况下完成此操作。

关于如何解决这个问题的任何想法?这真的是一个错误,还是我做错了什么?


编辑:这是显示错误的屏幕截图。约束不是直接在视图控制器中,而是在我用作表视图背景的子视图中。如果我删除这些限制,警告就会消失;如果我将它们添加回来,它会再次出现。我在一个新项目中尝试过,但无法重现它,我不知道为什么会在这里发生。

编辑:

这是另一个例子。当右约束设置为“大于或等于”时,一切正常:

当我将它设置为“相等”时,砰:

【问题讨论】:

  • 你能发布你收到的警告吗?你使用的是哪个 xcode?​​span>
  • @ReinierMelian Xcode 9;我将其设置为标签,但忘记在文本中提及。警告是标题中的警告。完整的文本说“固定的前导和尾随约束可能会导致剪辑,其中一个应该有一个常数≥标准空间”。谢谢。 :)
  • @ReinierMelian 如果我将其中一个约束设置为“大于或等于”,警告就会消失,但文本不会以视图为中心。
  • 如果您确信自己有错误(尤其是如果您有错误的示例),那么您应该向 Apple 报告:bugreport.apple.com
  • ok @dbmrq using Xcode 8.3.2 这个警告不存在,我还没有 Xcode 9

标签: ios xcode storyboard constraints xcode9


【解决方案1】:

如果您仍在寻找答案,在您的特定情况下,请尝试在标签上设置比例宽度并在视图控制器的视图中水平居中。

清除标签上的所有约束,右键单击从标签拖动到Background View 并从弹出菜单中选择Equal WidthsCenter Horizontally in ContainerCenter Vertically in Container

现在,既然您说您希望标签的左侧和右侧都有 20 像素的边距,请在等宽约束上编辑 Multiplier 并将其设置为 widthOfBackgroundView - 40)/widthOfBackgroundView

假设背景视图的宽度是414,乘数应该是374/414

width minus 40 乘数的原因是它覆盖了标签两侧的 20 像素。这应该会使您的警告消失并按照您期望的方式布置标签。

我遇到了同样的问题,并且能够通过这种方式修复警告。希望这会有所帮助!

【讨论】:

  • 欢迎来到 SO。请不要在答案中ping。为此使用 cmets。无论如何,问题的作者都会看到你的答案。
  • 警告似乎突然消失了,但这是个好主意,如果再次发生,我会记住它。 :)
【解决方案2】:

这里有一些问题,在 Xcode 9 的最终版本中引入。似乎该错误与语言方向有关:由于某种原因,Interface Builder 不能很好地理解默认语言方向条件的自动布局。

正如Repose 在此thread 上所建议的那样,您应该尝试使语言方向的使用对至少一个失败的约束(即尾随)无效。这种方法解决了我的警告。

【讨论】:

    【解决方案3】:

    在 Xcode 9GM(版本 9.0 (9A235))中检查,它可以正常工作

    删除约束并手动添加它们。

    【讨论】:

    • 多么奇怪,我刚刚在一个新项目上尝试过它,它工作正常,但由于某种原因,它仍然发生在我之前工作的项目上,即使我删除了约束并将它们添加回来。 ://
    • @dbmrq 请将此VC的其余视图及其约束截图
    • 我用另一个屏幕截图编辑了我的问题。感谢您的帮助。
    • 尝试重新创建背景视图
    猜你喜欢
    • 2021-09-23
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多