IOS - 导入Feed图像 - Retina支持

时间:2014-05-07 14:03:41

标签: ios objective-c image ios7 xcasset

我们目前正在构建IOS应用程序,部分功能涉及从外部CMS导入图像以显示在新闻源中。我们需要使所有图像符合视网膜标准,但不太确定如何去做。

例如 - 我们有一个300px x 150px的占位符作为uitableviewcontroller的自定义单元格的一部分 - 所以根据我的理解,我们需要600px x 300px和300 x 150px版本的图像可用于视网膜/非视网膜的deque设备

我的问题是我们如何让设备选择相关图像?我想我们以相应的尺寸下载image.png和image@2x.png - 但我们如何在以下声明中应用相关图像?

 cellA.ArtImg.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:TheImageWithURL]]];

是否需要将图像转换为Xcasset?或者可以以某种方式选择相关尺寸?

1 个答案:

答案 0 :(得分:1)

如果您正在为两个视网膜设备开发应用程序,只需下载600px x 300px图像并将其设置为您的imageView,如下所示。

也无需下载两个版本的图片。

 cellA.ArtImg.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:TheImageWithURL]]];

如果您正在为视网膜和非视网膜设备开发应用程序,请在下载时检查设备类型。

示例:

#define DEVICE_ISRETINA   ([[UIScreen mainScreen] scale] > 1)

cellA.ArtImg.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:(DEVICE_ISRETINA)?TheRetianImageURL:TheNonRetinaImageURL]]];