我的应用程序有一个填充屏幕的背景图像。我想根据我们是否在 Retina Display 设备上显示正确的 .png 文件。我已经为 iPhone 和 iOS 添加了所有大小正确的 .png 文件。是否可以 ?如果没有,我应该如何正确处理?
我有 XCode 4.3.2 和 iOS 5.1 作为部署目标。
我的应用程序有一个填充屏幕的背景图像。我想根据我们是否在 Retina Display 设备上显示正确的 .png 文件。我已经为 iPhone 和 iOS 添加了所有大小正确的 .png 文件。是否可以 ?如果没有,我应该如何正确处理?
我有 XCode 4.3.2 和 iOS 5.1 作为部署目标。
如果您正确命名您的图形(例如@2x
,在 png 文件的后缀中添加“”),iOS 就足够聪明,可以在适当的设备和显示器上使用您的 Retina 显示图形。特别是如果您在 XIB 文件中设计的用户界面中使用 UIImageViews 或控件或其他任何东西。
如果你在做程序化的图像(即你定义了一个插座然后通过类似“ [UIImage imageNamed:
]”的方式抓取图像,iOS 仍然足够聪明,可以为你拾取高 rez 图像。同样,只要你正确地命名了你的图形。
StackOverflow 上还有其他问题可能会对您有所帮助,例如:
这可能会奏效。首先,它检查屏幕是否有视网膜显示,如果有,则将背景图像设置为视网膜图像。如果它没有视网膜显示器,则背景图像是常规图像。你可以把它放在viewWillAppear
or中viewDidLoad
。
if ([[UIScreen mainScreen] respondsToSelector:@selector(displayLinkWithTarget:selector:)] &&
([UIScreen mainScreen].scale == 2.0)) {
// Retina display
UIImage *backgroundImage = [UIImage imageNamed:@"retinaImage.png"];
} else {
// Non-Retina display
UIImage *backgroundImage = [UIImage imageNamed:@"nonRetinaImage.png"];
}
希望这可以帮助!