imageNamed和本地化问题

时间:2013-11-18 12:08:36

标签: ios localization uiimage

我已经通过Xcode对我的图像进行了本地化,所有图像都在正确的lproj文件夹中。

然而,当我使用imageNamed时,我没有得到正确的图像,但即使我改变语言,我仍然会获得默认图像。

_myImageView.image = [UIImage imageNamed:@"image_name"];

2 个答案:

答案 0 :(得分:2)

这种问题让我浪费了一些时间,但后来我意识到这是一个错误的问题,我希望能为你节省宝贵的时间。

如果您切换语言并且图片不是新语言,那是因为缓存的图片。文档很简单:

  

此方法在系统缓存中查找具有指定名称的图像对象,并返回该对象(如果存在)

因此,当您切换语言,并且要求缓存中使用相同的名称时,您将获得旧图像!而已。 :)

答案 1 :(得分:0)

而不是:

_myImageView.image = [UIImage imageNamed:@"image_name"];

使用:

NSString *imageName = NSLocalizedString(@"image_name", @"image_name");
_myImageView.image = [UIImage imageNamed:imageName];

使用Localizable.strings文件本地化您的图像名称,就像项目中的任何其他资源一样。