静态 UIView 在本地化为法语时更改宽度
Posted
技术标签:
【中文标题】静态 UIView 在本地化为法语时更改宽度【英文标题】:Static UIView changes width when localized to French 【发布时间】:2020-01-26 06:22:15 【问题描述】:我在视图中嵌入了一个 UILabel 和一个 UITextField(因此我可以隐藏视图并使多个项目同时显示/显示,而不是隐藏每个项目)。这是英语中实际操作的屏幕截图:
当我切换到法语并运行时,我得到了这个:
您可以看到运行文本字段和右侧的标签。不过只有法语。德语、西班牙语、意大利语都可以。我缩短了占位符/文本字段中的法语文本,但这并没有改变任何东西。这是情节提要定义的一部分:
标签中的文本(您的声音已保存)居中,文本字段居中。当本地化为法语时,什么会导致标签的长度发生如此大的变化?标签和文本视图没有链接;两者都是由“隐藏视图”定义的 trailingEdge。更多检查 - 法语中的“隐藏视图”比其他视图宽 39(在 ViewDidLoad 的开头查看)。当我们进入主要空闲状态时,等待用户点击录制按钮,“隐藏视图”的宽度又增加了 191。这解释了文本字段和标签的拉伸,因为它们被固定在隐藏视图的右侧。 文本字段框架在英语和法语中是相同的。 所以我想问题是为什么 UIView 宽度在法语中发生变化,而不是英语。代码仅触及视图以将其 alpha 设置为 0 或 1。
【问题讨论】:
【参考方案1】:当标签不适合由约束定义的宽度时,它有两种布局方式:
-
打破可选限制(如果有)
截断标签
由于您的尾随约束是可选(优先级
【讨论】:
谢谢。不清楚是文字太长,但我按照你的建议做了修改,问题就解决了。您给出的解释很有帮助,将来也会使我的代码受益。以上是关于静态 UIView 在本地化为法语时更改宽度的主要内容,如果未能解决你的问题,请参考以下文章