当我使用 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默认进行本地化
对国际化应用程序使用自动布局时,请遵循以下提示。
删除固定宽度约束。允许显示要调整大小的本地化文本的视图。如果使用固定宽度约束,则本地化文本可能会在某些语言中出现裁剪。
使用内在内容大小。文本字段和标签的默认行为是自动调整大小。如果视图未调整为本地化文本的大小,请选择视图并选择“Editor”>“size To Fit”。
使用leading和trailing属性。添加约束时,请使用属性leading和trailing水平约束。对于从左到右的语言,例如英语,属性leading和trailing等同于left和right。对于从右到左的语言,如希伯来语或阿拉伯语,leading并trailing等同于right和left。的leading和trailing属性是用于水平约束的默认值。
将视图固定到相邻视图。这个操作会导致多米诺骨牌效应。当一个视图调整大小以适合本地化文本时,其他视图也会这样做。否则,某些语言的视图可能会重叠。
不断测试您的布局更改。使用不同的语言设置测试您的应用,如测试国际化应用中所述。
不要设置window的最小大小或最大大小。让window及其内容视图调整为包含视图的大小,这可能会在语言更改时更改。
解决问题
在这里不作过多国际化 xib 约束的讨论,针对我遇到的问题,我可以把宽度的约束删除,改成 leading 和 trailing 结合的方式。