同时支持高分辨率和低分辨率图像
问题描述:
在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,在那里它总是会找到文件的低分辨率版本。