Xcode 在Objective-CIOS5中以编程方式更改资源以用于视网膜显示

Xcode 在Objective-CIOS5中以编程方式更改资源以用于视网膜显示,xcode,ios5,resources,retina-display,Xcode,Ios5,Resources,Retina Display,我的应用程序有一个填充屏幕的背景图像。我想根据我们是否在视网膜显示设备上显示正确的.png文件。我已经为iPhone和iOS添加了所有大小正确的.png文件。可能吗?如果没有,我应该如何妥善处理 我的XCode 4.3.2以iOS 5.1作为部署目标。如果您正确命名图形,例如在png文件的后缀中添加@2x,iOS足够智能,可以在适当的设备和显示器上使用您的视网膜显示图形。尤其是当您在XIB文件中设计的用户界面中使用UIImageView或控件或其他内容时 如果您正在进行编程映像,即定义一个插座,

我的应用程序有一个填充屏幕的背景图像。我想根据我们是否在视网膜显示设备上显示正确的.png文件。我已经为iPhone和iOS添加了所有大小正确的.png文件。可能吗?如果没有,我应该如何妥善处理


我的XCode 4.3.2以iOS 5.1作为部署目标。

如果您正确命名图形,例如在png文件的后缀中添加@2x,iOS足够智能,可以在适当的设备和显示器上使用您的视网膜显示图形。尤其是当您在XIB文件中设计的用户界面中使用UIImageView或控件或其他内容时

如果您正在进行编程映像,即定义一个插座,然后通过[UIImage ImageName:]之类的方式获取映像,iOS仍然足够智能,可以为您拾取高分辨率映像。同样,前提是正确命名图形

有关StackOverflow的其他问题可能会帮助您解决,例如:


如果您正确命名图形,例如在png文件的后缀中添加@2x,iOS足够智能,可以在适当的设备和显示器上使用您的视网膜显示图形。尤其是当您在XIB文件中设计的用户界面中使用UIImageView或控件或其他内容时

如果您正在进行编程映像,即定义一个插座,然后通过[UIImage ImageName:]之类的方式获取映像,iOS仍然足够智能,可以为您拾取高分辨率映像。同样,前提是正确命名图形

有关StackOverflow的其他问题可能会帮助您解决,例如:


这可能会奏效。首先,它检查屏幕是否有视网膜显示,如果有,则将背景图像设置为视网膜图像。如果没有视网膜显示器,则背景图像为常规图像。您可以将其放入ViewWillDisplay或viewDidLoad中


希望这有帮助

这可能行得通。首先,它检查屏幕是否有视网膜显示,如果有,则将背景图像设置为视网膜图像。如果没有视网膜显示器,则背景图像为常规图像。您可以将其放入ViewWillDisplay或viewDidLoad中


希望这有帮助

天平上有一块。谢谢我有一个应用程序在运行时下载图像,我想下载正确的图像分辨率为视网膜和非视网膜显示。。。因此,我不能依赖@2x约定,因为我没有得到媒体服务器提供的实际文件名,该服务器可以动态地调整文件大小和格式,就像scale位所做的那样。谢谢我有一个应用程序在运行时下载图像,我想下载正确的图像分辨率为视网膜和非视网膜显示。。。因此,我不能依赖@2x约定,因为我无法获得动态调整文件大小和格式的媒体服务器提供的实际文件名
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"];

}