Xcode 9 – “固定宽度限制可能会导致裁剪”和其他本地化警告

我下载了新的Xcode,并在界面生成器中,我遇到了很多警告,说:

固定的宽度限制可能会导致裁剪

它看起来像这样:

在这里输入图像说明

我确实有几种语言的本地化,我知道在另一种语言的标签的大小可能会改变的警告,但我的应用程序没有这个问题。 我昨天在Xcode 8上运行并testing过,没有问题。 我不想花几个小时加点毫无意义的新约束。

任何build议解决scheme

即使在我的应用程序中没有多种语言,我也得到了相同的警告,这导致我发现真正发生的事情。 。 。

这里有几个不同的事情发生。 我能够通过将对象间距宽度从固定宽度更改为大于或等于小于等于,静默我自己的应用程序中的固定宽度警告

这可以通过在界面生成器中select对象来完成,转到大小检查器并在其中进行更改:

在这里输入图像说明


或者,从文档大纲中select约束,转到大小检查器,然后在其中进行更改:

在这里输入图像说明



至于截图顶部的警告:

修复了带有中心约束的前后约束可能会导致裁剪

这里是我自己的应用程序的截图,我得到了完全相同的警告:

在这里输入图像说明

我将@标记的标签设置为前导和尾随button,还将中心与评分标签alignment 。 一旦我移除了中心alignment约束 ,警告就消失了,但我遗留下了一组不合适的对象。

那就是我自己去接受堆栈视图 。 就像使用时一样恼人,当你把所有的限制和设置都正确的时候,它会精美地放置并且没有任何警告。


编辑

Repose在注释中写入时,有时候简单地添加> = 0就是你所需要的,因为你要确保两个元素不重叠。

您可以尝试在每个约束的基础上禁用“尊重语言指导”来消除警告,看看是否有帮助。 select您的约束,并打开属性/大小检查器。 请看附图。

不尊重语言的方向

对于本地化的标签和button,这个警告是有道理的,您应该提供必要的约束,以使您的标签不重叠。 如果他们现在不重叠,他们可能在将来,所以提供约束不会受到伤害。

Xcode可以帮助您自动添加这些约束:

在故事板的文档大纲中,按住黄色箭头,并根据屏幕上文本的位置(左侧或右侧),select“固定前导”或“固定后端”。 这将解决大部分问题。

图片

如果使用没有任何文本button (仅限图像)出现此问题,请尝试删除可能仍然为button设置的“默认标题”:

图片

使用Labels ,您可以设置Lines0 ,自动Autoshrink属性为Minimum Font Size以移除Fixed Width Constraints May Cause Clipping警告,如下所示:

在这里输入图像说明

我有同样的问题,但当我改变>=它会自动设置为0 ,如果我select60例如,警告再次出现。 所以我正在处理这个问题。

我可以修复在Viewembedded我的Label

 Editor > Embed In > View 

Label我设置了constant = 0 TopBottomLeadingTrailing

限制

View我设置了我以前所期望的constraints

Swift 4,Xcode 9.1:

关于这个问题,我认为你的对象不知道在超级视图的上下文中它是否是正确的中心位置 ,并且大多数时候使用删除,大于或者其他的前导/设置设置不能正常工作。 首先,你必须检查你的超级视图的正确约束。

如果您的超级视图设置正确,您可以尝试通过设置“在容器中水平”约束来向对象“解释”视图中的正确位置:

在这里输入图像说明