iOS 启动图国际化

如果APP是支持多语言的,那么图片国际化必不可少,普通资源的国际化不在此做赘述了,主要说一下启动图的国际化以及实现过程中遇到的坑。

1、使用launchImage的国际化方法

苹果提供了一个info.plist设置的key叫做UILaunchImages,顺利实现启动图国际化。UILaunchImages是一个数组,每个对象对应了一个启动图,每个启动图有四个键需要设置,分别为名字、最低版本、大小、方向。这里每个启动图都有几套,分别对应需要设置的每个多语言的版本,下面的操作先使用一套即可,比如使用中文的那套启动图。(参考:http://www.hudongdong.com/ios/559.html)

尝试这种方法后,发现一个问题,启动图片不会根据语言环境的变化而变化,也就是说,在你安装APP之后,切换了手机的语言环境,但APP的启动图并没有自动跟着做出调整,必须将APP卸载重装之后,才能体现出效果。

2、使用LaunchScreen.storyboard实现国际化

使用这种方法后,发现前面提到的问题依然存在,启动图片不会根据语言环境的变化而变化,需要卸载重装。如果想对启动图上的文本做多语言,LaunchScreen.storyboard确实获取到了.String文件的翻译,但是不论如何切换语言环境,始终仅获取英文版翻译,不会切换到中文翻译文件中。PS: 这里, 说明一点。 启动页只会保留一份, 也就是说, 你第一次加载完以后, 切换了语言, 再重新打开App, 它的启动页不会跟着更新的。 这也符合苹果的用户交互指引。

如果你想要动态修改启动页面图LaunchImage, 抱歉!根据苹果的用户交互指引,该页面是在程序加载时显示的,不建议动态修改。正确的做法一般都是用固定的图片做启动页面图,在启动页面结束之后做任何你想做的事。如果真想动态修改启动页面,启动页面是固定的名字,可以在程序执行之后强制把页面替换掉,不过这样APP可能会被拒。

如果很不幸,你面对的产品是个杠精的话,建议写一个viewcontroller做一个假的启动页,也就是说,在APP本身的启动页展示完毕之后,立即进入你自己写的启动页里去,以类似达到跟随语言环境变化而变化的目的。

你可能感兴趣的:(iOS开发,图片国际化,启动图国际化,启动图多语言,启动图)