2013-04-05 47 views
3

这是我在这里的第一个问题:-)如何阅读局部图像与imageWithContentsOfFile

我有本地化为3种语言的图像icon_new.png。我需要使用像这样加载它在运行时:

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"]; 

但是我不知道是否有自动的方式做到这一点?就像应用程序从适当的区域路径加载整个UI .xib文件一样,所以基本上我只是指定图像名称而不是完整路径,并获得适当的本地化版本。

在此先感谢您的帮助!

回答

2

使用NSBundle-pathForResource:ofType:,它首先搜索主目录,如果它没有在那里找到资源,则检查相应的本地化目录。

NSString *path = [[NSBundle mainBundle] pathForResource:@"icon_new" ofType:@"png"]; 
+1

感谢您的快速回答,我试过了,它的工作原理。 – Sinisa 2013-04-05 23:57:26

+0

我不得不在之前将文件添加到Xcode,否则pathForResource方法返回nil。 – Sney 2018-01-30 17:42:02