如何使用imageWithContentsOfFile读取本地化图像

时间:2013-04-05 23:15:58

标签: ios objective-c image cocoa-touch localization

这是我的第一个问题: - )

我有一个图像icon_new.png,本地化为3种语言。我需要在运行时使用以下内容加载它:

NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"icon_new.png"];
UIImage *img = [UIImage imageWithContentsOfFile:path];

上面的问题是它适用于非本地化的图像,但对于本地化的图像,它们的真实路径实际上附加了en.lproj,zh-Hans.lproj或其他文件夹名称,具体取决于本地化中包含的语言。

现在我可以检查当前的区域设置并相应地添加路径:

// This path would work for image that's localized - for English version of it.
NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"en.lproj/icon_new.png"];

但是我想知道是否有自动方式来做到这一点?就像app从正确的语言环境路径加载整个UI .xib文件一样,基本上我只是指定图像名称而不是它的完整路径,并获得适当的本地化版本。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

使用NSBundle的{​​{1}},它首先搜索主目录,如果找不到那里的资源,则检查相应的本地化目录。

-pathForResource:ofType: