Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 静态UIView在本地化为法语时更改宽度_Ios_Uiview_Localization - Fatal编程技术网

Ios 静态UIView在本地化为法语时更改宽度

Ios 静态UIView在本地化为法语时更改宽度,ios,uiview,localization,Ios,Uiview,Localization,我在一个视图中嵌入了一个UILabel和一个UIExtField(因此我可以隐藏该视图并同时显示多个项目,而不是隐藏每个项目)。下面是一个用英语拍摄的活动画面: 当我换成法语跑步时,我得到了以下信息: 您可以看到它在右边运行文本字段和标签。不过,只能用法语。德语、西班牙语、意大利语都可以。我缩短了占位符/文本字段中的法语文本,但这并没有改变任何事情。下面是故事板定义的一部分: 标签中的文本(您的声音已保存)居中,文本字段居中。当本地化为法语时,是什么原因导致标签的长度发生如此大的变化?标签

我在一个视图中嵌入了一个UILabel和一个UIExtField(因此我可以隐藏该视图并同时显示多个项目,而不是隐藏每个项目)。下面是一个用英语拍摄的活动画面:

当我换成法语跑步时,我得到了以下信息:

您可以看到它在右边运行文本字段和标签。不过,只能用法语。德语、西班牙语、意大利语都可以。我缩短了占位符/文本字段中的法语文本,但这并没有改变任何事情。下面是故事板定义的一部分:

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

当标签不适合由约束定义的宽度时,其布局有两种方式:

  • 如果存在任何可选约束,请打破这些约束
  • 截断标签

  • 由于尾部约束是可选的(优先级<1000),布局引擎会将其打破,并导致标签离开屏幕。因此,要解决此问题,需要使用尾部约束(即,将其优先级设置为1000)

    多谢各位。不清楚文本是否太长,但我做了你建议的修改,问题就解决了。您给出的解释很有帮助,将来也会对我的代码有所帮助。