1

例如,我有用于视网膜显示的图像 great_image.png 和 great_image@2x.png。如果我想在代码中创建 UIImage,我只需编写:

UIImage *image = [UIImage imageNamed:@"great_image"];

但是如果我在 xib 中创建 UIImageView 并且我想在 xib 中设置图像,我需要写图像名称。我应该写什么:"great_image.png" or "great_image@2x.png" or "great_image"?(因为如果我写“great_image”,我不会在 xib 中看到图像)。

更新:问题的第二部分:

如果我只有 great_image@2x.png 而没有 great_image.png 怎么办,我还是应该在 xib 中写 great_image.png 吗?

4

3 回答 3

1
  1. 您需要在 xib 中设置 great_image.png。因为如果它在视网膜显示中,它将采用 @2x 图像。
  2. 如果您的项目中没有 great_image.png 图像,在这种情况下它不会显示在非视网膜设备中
于 2013-08-29T05:52:00.687 回答
1

如果你的项目中有 great_image.png 和 great_image@2x.png 那么当你使用

UIImage *image = [UIImage imageNamed:@"great_image"];

如果您的屏幕比例为 1.0 (iPhone3G/3GS),它将自动加载 great_image.png;如果您的屏幕比例为 2.0 (retina, iPhone 4),它将自动加载 great_image.png。

无需指定 great_image@2x.png

如果您只有@2x 图像高分辨率@2x 图像不会在非视网膜设备上自动下采样。

然而,非视网膜设备将缩小尺寸并显示高分辨率@2x 图像,但不会对它们进行下采样,因此会导致质量下降。

于 2013-08-29T05:55:16.673 回答
0

您可以从 xib 设置 imageview 的图像属性。您只需要给出该图像的名称。如果图像未显示在图像视图中,则检查您的捆绑资源,以确定该图像是否已添加到其中。其次,您不必用图像名称指定@2x,因为编译器在运行时通过考虑设备(非ratina或ratina)来决定。

于 2013-08-29T05:53:57.903 回答