Ios 图像命名与定位问题
我已经通过Xcode本地化了我的图像,所有的图像都在正确的lproj文件夹中 然而,当我使用imageNamed时,我没有得到正确的图像,但是即使我更改了语言,我仍然会得到默认图像Ios 图像命名与定位问题,ios,localization,uiimage,Ios,Localization,Uiimage,我已经通过Xcode本地化了我的图像,所有的图像都在正确的lproj文件夹中 然而,当我使用imageNamed时,我没有得到正确的图像,但是即使我更改了语言,我仍然会得到默认图像 _myImageView.image = [UIImage imageNamed:@"image_name"]; 这种问题让我浪费了一些时间,但后来我意识到这是一个错误的问题,我希望能为你节省宝贵的时间 如果您切换了语言,而图像没有使用新语言,那是因为缓存了图像。文档很简单: 此方法在系统缓存中查找具有指定名称的图
_myImageView.image = [UIImage imageNamed:@"image_name"];
这种问题让我浪费了一些时间,但后来我意识到这是一个错误的问题,我希望能为你节省宝贵的时间 如果您切换了语言,而图像没有使用新语言,那是因为缓存了图像。文档很简单: 此方法在系统缓存中查找具有指定名称的图像对象,并返回该对象(如果存在) 因此,当您切换语言并向缓存请求相同的名称时,您将得到旧图像!就这样。:) 而不是:
_myImageView.image = [UIImage imageNamed:@"image_name"];
使用:
和项目中的任何其他资源一样,使用Localizable.strings文件对图像名称进行本地化。能否将获取图像的代码放在此处。签出:它表示首先查看资源。您是否有可能将图像副本未定位到资源中?幸运。是的,我很害怕,我检查了好几次。检查答案(顺便说一句;)我知道有这个选择,但我认为这需要更多的时间。您必须像第一个解决方案中那样准备图像,但随后必须在每个localizable.strings中放入一个新行。如果你有n个图像和m种语言,那就是n*m行。我同意这主要是复制/粘贴,但这是更多的工作。这是更多的工作,但它是正确的和推荐的方式:-)我不确定这是推荐的方式。事实上,苹果的文档似乎建议将本地化图像放在适当的文件夹中。有一个选项可以将图像本地化。只需选择它并单击文件检查中的本地化是,这就是我所做的。我还没有自己将图像放入lproj文件夹中,所以现在的问题是,如何重置缓存…(我尝试清理构建,甚至重置模拟器,并删除派生数据。)我最终通过删除“卡住”的本地化中的一个图像获得了它。最后,图像被重新加载。
NSString *imageName = NSLocalizedString(@"image_name", @"image_name");
_myImageView.image = [UIImage imageNamed:imageName];