在我的iOS资源文件夹中,有以下图像:
foo~iphone.png
foo@2x~iphone.png
foo~ipad.png
foo@2x~ipad.png
我加载它们:
NSString *fileName = [[NSBundle mainBundle] pathForResource:@"foo" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:fileName];
实验上:
在iPhone上,
filename
是/path/to/bundle/foo~iphone.png
,在视网膜iPhone上,它将加载@2x
版本。在iPad上,
filename
是/path/to/bundle/foo~ipad.png
,在视网膜iPad上,它将加载@2x
版本。也就是说,它加载了我希望的图像,但是
pathForResource
处理device修饰符,而imageWithContentsOfFile
处理scale修饰符。我想知道为什么。
pathForResource
的documentation没有提及设备修饰符,而imageWithContentsOfFile
的documentation没有提及比例修饰符。是否有单独的文档准确说明每个功能的作用?
最佳答案
imageWithContentsOfFile
的解释在related documentation中,而不在UIImage
文档本身中:
我不知道哪个文档解释了pathForResource
的行为。