尽管与包含该项目图像文件名的xcassets中的每个项目关联的Content.json文件(请参见下文)似乎并未在文件系统级别可访问。编译后,所有图像都放置在单个文件系统文件夹中。 json文件是自动生成的,不应该被编辑,但它确实为解决方法提供了一个模板。
为每个文件命名后缀一致,以匹配出现在json文件中的相应成语,缩放和子类型。这需要通过为每个资产选择“Show in Finder”选项并对每个文件进行重命名来进行手动工作,但是一旦完成,您可以使用pathForResource和函数结合使用,将适当的后缀添加到基础资产名称中,大小的图像。
示例代码检索路径:
NSString *imageName = @"Add to Cart";
NSString *imageSuffix = [self someMethodThatDeterminesSuffix]; // Example: "-iphone-2x-retina4"
NSString *imagePath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%@%@", imageName, imageSuffix] ofType:@"png"];
的 “加入购物车” 的形象资产实例Contents.json文件:
{
"images" : [
{
"idiom" : "iphone",
"scale" : "1x",
"filename" : "Add to Cart-iphone-1x.png"
},
{
"idiom" : "iphone",
"scale" : "2x",
"filename" : "Add to Cart-iphone-2x.png"
},
{
"idiom" : "iphone",
"filename" : "Add to Cart-iphone-2x-retina4.png",
"subtype" : "retina4",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
也有同样的问题! – vilanovi
我也需要图像的实际路径,因为我不想使用imageNamed(破碎缓存),事实证明资产目录也被破坏而没有编程访问。 – Alper
@MobileVet你有没有找到解决方案? – Keab42