CUICatalog:无法找到名称:someimage@2x~ipad.png比例因子:2设备成语:1设备子类型:568
我创建了完全适用于xcode 5的应用程序。但是当我使用iphone 6模拟器在xcode 6上运行它时,它给了我一个错误:
CUICatalog:无法找到名称的再现:someImage@2x~ipad.png比例因子:2设备成语:1设备子类型:568
我知道这可能不是你想要的答案,但我有完全相同的问题,只需重命名图像就可以解决问题。
换句话说,我将原始文件复制到同一目录中的另一个文件,并使用不同的名称。
然后我将这个新文件添加到Xcode项目并删除了第一个。
我更改了代码以反映新的图像名称:
// Asset Catalog problem loading this: // [imgBackground setImage:[UIImage imageNamed:@"Home_BG@5g.png"]]; [imgBackground setImage:[UIImage imageNamed:@"Home_BG-568h"]];
我略微更改了之前开发人员的命名约定,与Home_BG-568h@2x.png
一起使用。
希望这有助于某人。
我发现了一种通过规避Apple的命名约定解释来加载图像的方法。 而不是使用[UIImage imageNamed:]
,将图像作为二进制文件加载到NSData
,然后用这样的数据初始化UIImage
,如下所示:
NSData* imageData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Icon@57x57" ofType:@"png"]]; UIImage* icon = [UIImage imageWithData:imageData];
但是要注意,这种方法没有缓存,多次调用它会每次加载一个新图像。 如果你想要缓存,你必须自己实现这个逻辑。
图像的比例也可能不正确。 如果是视网膜刻度(@ 2x)图像,您可以调整加载图像的比例,如下所示:
icon = [UIImage imageWithCGImage:icon.CGImage scale:2.f orientation:UIImageOrientationUp];
我在我的通用应用程序项目中遇到了同样的问题。
解决方案也是重命名所有“通用图像”,用于两个或仅一个设备(iPhone && iPad || iPhone || iPad)。 EG someimage@2x.png因为没有对应物存在也不需要……