uistoryboard – 为什么storyboard会随机加载本地化图像?

我有2个小问题,我认为第二个是因为第一个问题.

第一个是我的应用程序中有几个UIButton,但没有文本,只有背景图像.
这些图像以6种语言本地化.
问题是,在编辑故事板中的视图时,我看到每个按钮随机加载一个图像(有时用英语,其他用西班牙语,其他用俄语…).应该是全英文,因为我有钥匙:
CFBundleDevelopmentRegion

看图.
我想一切都配置得当.你觉得有什么奇怪的吗?
也许这是一个Xcode错误.

第二个问题是我正在使用自动布局.原因是因为这些按钮中的图像具有不同的大小,具体取决于语言.
因此,随着intrinsec内容大小的变化,按钮宽度会发生变化(因为没有宽度限制).
问题是,如果我选择一个按钮,按下“尺寸适合内容”选项以删除任何宽度约束,它似乎完美地工作(当我用不同的语言启动应用程序时,宽度会自动更改,具体取决于但是,当storyboard以不同的语言加载图像时(第一个问题),自动布局似乎会自动添加宽度约束,然后当我再次启动应用程序时,按钮的宽度在大多数语言中都是不正确的.
你知道发生了什么吗?

一个非常脏的解决方法可能是创建一个UIButton后代,删除任何宽度限制加载.不知道是否有效.

我很欣赏你对这些问题的看法.

最佳答案 它似乎是Xcode中的一个错误,但它不会影响最终的应用程序.

我做了以下.开始了一个新的Xcode项目.我使用了自动布局的故事板.我没有使用Base Internationalization.

我在主视图中添加了3个按钮.然后,我创建了3个图像以与按钮一起使用,并将它们添加到资源组.我将PNG文件保存在带故事板的en.lproj文件夹中.我先得到了英文版.

然后我去了项目并添加了法语.它为它认为应该本地化的所有文件提供了一个对话框,它包含了PNG文件.它将所有这些文件复制到fr.lproj文件夹中.然后我创建了PNG文件的法语版本,并将它们与原始文件名一起保存在fr.lproj文件夹中.

在Xcode中查看时,只有一个按钮是法语.其他人都是英国人.

当我在模拟器中运行应用程序时,在切换语言时使用了正确的PNG.

这很烦人,但在运行时似乎不会影响应用程序.

退出Xcode并重新启动它会更改哪些是正确的,但仍然无法正常工作.您可能应该向Apple提交RADAR错误. http://bugreporter.apple.com/

点赞