如何消除“前导和尾随约束……已经存在中心约束”警告

Posted

技术标签:

【中文标题】如何消除“前导和尾随约束……已经存在中心约束”警告【英文标题】:How to eliminate “Leading and Trailing constraints … there is already a center constraint” warning 【发布时间】:2018-02-14 13:55:37 【问题描述】:

我正在尝试在“或”UILabel 附近添加两条 1 像素线(由 UIViews 制成)。

一切看起来都很好并且按预期工作,除了我从 Interface Builder 中的第一张图片中收到警告:

具有“等于”关系的前导和尾随约束可能会在已经存在中心约束时对文本可以填充的空间造成无益的限制。

我尝试将约束从 = 更改为 >= 或

知道如何消除此警告吗? 谢谢!

Constraints of the first line

Constraints of the label

Constraints of the second line

【问题讨论】:

【参考方案1】:

存在警告是因为“或”标签上的“将 X 中心对齐到:安全区域”限制。摆脱警告:

    从“或”标签中删除“将 X 中心对齐到:安全区域”约束。 在左行和右行之间添加“等宽”约束。

通过这两个更改,约束系统仍将强制将标签居中,但不会有导致警告的 center-x 约束。

【讨论】:

谢谢@rob mayoff,但是这些限制怎么是错的呢?我的意思是自动布局仍然可以毫无歧义地解决它。它是自动布局的错误吗??【参考方案2】:

代替标签,在具有标签宽度的行之间设置一个空的 UIView 怎么样?然后以空视图为中心设置没有左/右约束的标签。这样,空视图将适应标签而不限制它。

【讨论】:

以上是关于如何消除“前导和尾随约束……已经存在中心约束”警告的主要内容,如果未能解决你的问题,请参考以下文章

如何消除间接呼叫 Method 在 Android Studio 中的编译警告

如何最好地消除有关未使用变量的警告?

如何消除 GCC 中的外部库/第三方警告 [重复]

生成代码文档时如何消除意外缩进警告的原因?

Android - 如何消除这些 gradle/proguard 警告?

如何消除 _logistic 回归上的 sklearn 警告