同时支持高分辨率和低分辨率图像

问题描述:

在iOS3和iOS4上显示图像的最佳模式是什么?同时支持高分辨率和低分辨率图像

例如,这里有一个自定义活动的动画代码:

activityImageView.animationImages = [NSArray arrayWithObjects: 
[UIImage imageNamed:@"s01"], 
[UIImage imageNamed:@"s02"], 
[UIImage imageNamed:@"s03"], 
[UIImage imageNamed:@"s04"], 
[UIImage imageNamed:@"s05"], 
nil]; 

在运行iOS4的,如预期的图像加载低分辨率和高分辨率的设备。在iOS3上无法找到图像,因为.png扩展名被视为丢失。

什么是正确的方式来处理这种情况?我是否需要在整个代码中抛出hacky条件,还是有更清晰的方法?

是从马特·加拉格尔的文章一个好方法什么?
http://cocoawithlove.com/2010/07/tips-tricks-for-conditional-ios3-ios32.html

即使您使用文件扩展名,您仍然会在iOS4中获得自动“@ 2x”加载行为,因此[UIImage imageNamed:@"so1.png"]没问题(如果您在Retina显示器上运行,它会找到“[email protected]” OS 4)加上它向后兼容3,在那里它总是会找到文件的低分辨率版本。

请参阅“将图像载入应用程序”部分here