iphone 4 - 加载图像X旧设备

问题描述:

苹果公司说,你必须有@ 2X版本的图像,并使用这样的东西iphone 4 - 加载图像X旧设备

UIImage* anImage = [UIImage imageNamed:@"Button"]; // without the extension 

这将选择低分辨率和雇用按钮图像的版本,这取决于iPhone版本(3G/3GS或4)。但如果该应用程序也适用于iPad,该怎么办?

即使我没有指定扩展名,iPad是否会加载Button图像?

谢谢。

要么

UIImage* anImage = [UIImage imageNamed:@"Button"]; // without the extension 

UIImage* anImage = [UIImage imageNamed:@"Button.png"]; // with the extension 

将工作的iOS4的,因为苹果基本上不鼓励你使用比PNG可以忽略劳累任何其它图像。

两者都适用于@ 2x.png文件。确保@ 2x文件已添加到您的项目中。

+0

我已经这样做了,但图像并未加载雇员...至少不是在模拟器上(我的国家很快没有iPhone 4)。你可以确认一旦你的项目中有他们的图片,是否在模拟器上加载了图像?谢谢! – SpaceDog 2010-07-05 10:49:00

+0

是的,它们显示正常。 – 2010-07-05 13:04:26

是的,它会加载标准(lores)版本。

编辑:不要忘记在模拟器或真实设备上进行测试,因为有一些twiddles,但imageNamed:已证明迄今为止工作良好。

即使我没有指定扩展名,iPad会不会载入Button图像?

From the doc

  • 特别注意事项

    在iOS 4及更高版本,则不需要的文件名来指定文件扩展名。 在iOS 4之前,您必须指定文件扩展名。

由于iPad上运行3.2,你需要包括.png部分。但是,写入

UIImage* anImage = [UIImage imageNamed:@"Button.png"]; 

不会阻止系统在4.0上找到[email protected]

为补充的答案,我必须提到this page

的问题是,SDK被打破,尽管苹果提的是,其他的方法超越imageNamed加载@ 2倍的图像,他们不这样做。对苹果公司感到羞耻,让我们在SDK破裂时失去时间。

上面提到的链接有解决问题的方法。