imageWithContentsOfFile

imageWithContentsOfFile

在我的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修饰符。

我想知道为什么。 pathForResourcedocumentation没有提及设备修饰符,而imageWithContentsOfFiledocumentation没有提及比例修饰符。

是否有单独的文档准确说明每个功能的作用?

最佳答案

imageWithContentsOfFile的解释在related documentation中,而不在UIImage文档本身中:



我不知道哪个文档解释了pathForResource的行为。

10-08 20:22