Localization Issue Warning Storyboard

2020/6/15 posted in  iOS

当我使用 xib 设置自动布局的时候出现了下面的警告

Certain autolayout constraint combinations may result in an appropriate layout in the current development language but will pose issues in other languages and regions.

然后看了苹果官方的文档,说是使用“自动布局”相对于彼此布置视图而没有固定的原点,宽度和高度,以便在语言或区域设置更改时视图重新定位和调整大小。自动布局使得可以为所有语言提供一组.storyboard和.xib文件,并且main.Storyboard默认进行本地化

对国际化应用程序使用自动布局时,请遵循以下提示。

  1. 删除固定宽度约束。允许显示要调整大小的本地化文本的视图。如果使用固定宽度约束,则本地化文本可能会在某些语言中出现裁剪。

  2. 使用内在内容大小。文本字段和标签的默认行为是自动调整大小。如果视图未调整为本地化文本的大小,请选择视图并选择“Editor”>“size To Fit”。

  3. 使用leading和trailing属性。添加约束时,请使用属性leading和trailing水平约束。对于从左到右的语言,例如英语,属性leading和trailing等同于left和right。对于从右到左的语言,如希伯来语或阿拉伯语,leading并trailing等同于right和left。的leading和trailing属性是用于水平约束的默认值。

  4. 将视图固定到相邻视图。这个操作会导致多米诺骨牌效应。当一个视图调整大小以适合本地化文本时,其他视图也会这样做。否则,某些语言的视图可能会重叠。

  5. 不断测试您的布局更改。使用不同的语言设置测试您的应用,如测试国际化应用中所述。

  6. 不要设置window的最小大小或最大大小。让window及其内容视图调整为包含视图的大小,这可能会在语言更改时更改。

解决问题

在这里不作过多国际化 xib 约束的讨论,针对我遇到的问题,我可以把宽度的约束删除,改成 leading 和 trailing 结合的方式。