如何确定在运行时使用哪个默认图像?

时间:2012-11-17 17:38:58

标签: ios uiimage

我有一个具有不同默认图像的通用应用程序:

  

为Default.png

     

Default@2x.png

     

Default-Portrait@2x~ipad.png

等等。如何在运行时以编程方式确定使用了哪个文件?我试过这个:

    UIImage *imgUsed = [UIImage imageNamed:@"Default"];

但是无论我使用哪个模拟器,这总是会返回Default.png(根据使用的屏幕尺寸,在模拟器中启动时会显示正确的图像)。

感谢。

2 个答案:

答案 0 :(得分:1)

使用图像视图创建“加载”视图控制器 - 一个iPhone和一个iPad版本。在每一个中,将图像设置为默认值或默认值 - iPad - 将自动为您选择视网膜/非视网膜版本。

将加载标签或活动指示器添加到视图控制器。

如果需要,提供此视图控制器 - 您可以使用UI_USER_INTERFACE_IDIOM()宏(请参阅here)判断您是在iPhone还是iPad上运行并加载相应的视图。

答案 1 :(得分:0)

您这样做的方式就像逆向工程。您可以查看屏幕比例是1还是2(视网膜与否)以及设备的尺寸(iPad,iphone3.5屏幕,iphone4.0屏幕),然后使用此信息重新创建基本图像名称。 / p>

系统没有api告诉你这个信息。

编辑:对,您可以使用@jrturton建议的UI_USER_INTERFACE_IDIOM宏来确定iPad / iPhone,但您仍然需要查看手机大小以了解是否使用了3.5或4英寸高的图像。