xibs问题中的UIImage名称:我应该使用@ 2x

时间:2013-08-29 05:47:47

标签: iphone ios ipad uiimageview uiimage

例如,我有图像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吗?

3 个答案:

答案 0 :(得分:1)

  1. 您需要在xib中设置great_image.png。因为如果它处于视网膜显示状态,它将需要@ 2x图像。
  2. 如果您的项目中没有great_image.png图像,那么它将不会显示在非视网膜设备中

答案 1 :(得分:1)

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

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

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

无需指定great_image@2x.png

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

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

答案 2 :(得分:0)

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