我有一个具有不同默认图像的通用应用程序:
为Default.png
Default@2x.png
Default-Portrait@2x~ipad.png
等等。如何在运行时以编程方式确定使用了哪个文件?我试过这个:
UIImage *imgUsed = [UIImage imageNamed:@"Default"];
但是无论我使用哪个模拟器,这总是会返回Default.png
(根据使用的屏幕尺寸,在模拟器中启动时会显示正确的图像)。
感谢。
答案 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英寸高的图像。