我在视图中嵌入了一个UILabel和一个UITextField(这样我就可以隐藏该视图并使一次显示/显示多个项目,而不是隐藏每个项目)。这是用英语进行操作的屏幕截图:
ios - 本地化为法语时,静态UIView会更改宽度-LMLPHP

当我切换到法语并运行时,得到以下信息:
ios - 本地化为法语时,静态UIView会更改宽度-LMLPHP

您可以看到它在右侧运行了文本字段和标签。不过只有法语。德语,西班牙语,意大利语都可以。我在占位符/文本字段中缩短了法语文本,但这并没有任何改变。这是故事板定义的一部分:
ios - 本地化为法语时,静态UIView会更改宽度-LMLPHP

标签(您的声音已保存)中的文本居中,文本字段居中。本地化为法文时,会导致标签长度发生太大变化的原因是什么?标签和文本视图未链接;两者都是“隐藏视图”定义的trailingEdge。多一点检查-法语中的“隐藏视图”比其他视图宽39(在ViewDidLoad的开头查看。)到我们进入主要空闲状态时,等待用户点击记录按钮,“隐藏视图”的宽度又增加了191。这说明了文本字段和标签的拉伸,因为它们固定在隐藏视图的右侧。
文本框的英文和法文相同。
所以我想问题是为什么UIView宽度会用法语而不是英语更改。代码仅触摸视图以将其Alpha设置为0或1。

最佳答案

当标签不能使文本适合约束定义的宽度时,它有两种布局方式:


打破可选约束(如果有)
截断标签


由于尾随约束是可选的(优先级

关于ios - 本地化为法语时,静态UIView会更改宽度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59916038/

10-09 20:59