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

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

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

预先感谢您的帮助!

最佳答案

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

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

关于ios - 如何使用 imageWithContentsOfFile 读取本地化图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15845113/

相关文章:

ios - 如何在我编辑该单元格时保持 UITableViewCell 处于选中状态?

objective-c - 如何迭代 NSOutlineView 的所有项目?

css - 在 CSS 中填充图像的一部分

java - 如何在 Android 应用程序中显示图像

ios - 在 NSDictionary 中存储 C float 组

iOS:单个字符的 sizeWithFont 与字符串不同?

ios - 核心数据关系映射 : Double Quotes in Value Expression are automatically turned into single quotes

ios - 如何使用 NSMutableAttributedString 在我的 UITextView 中加粗一些单词?

objective-c - NSScrollView 周围出现蓝色边框

image - 将文件保存/加载为字节缓冲区