创buildiOS通用应用程序,如何检测所有5个决议?

标题相当好说。 我正在创build一个iOS应用程序,并且正在添加艺术资产。 我有iPhone低分辨率(iPhone 3GS或更低),iPhone视网膜(iPhone 4或更高),iPhone 5,iPad低分辨率和iPad高分辨率5背景。

什么是处理基于设备加载哪个背景的最好方法?

另外,是否有一种方法来testing模拟器中所有5的样子? 现在,当然,你只能testingiPhone和iPad。

此外,这是一个游戏,我使用cocos2d,如果这将有所作为。

对于cocos2D-iPhone,默认的后缀如下:

  • 非视网膜iPhone :image.png
  • Retina iPhone :image-hd.png
  • 非视网膜iPad :image-ipad.png
  • 视网膜iPad :image-ipadhd.png

来自维基页面的注意事项:

警告build议使用“@ 2x”后缀。 苹果会以特殊的方式处理这些图像,这可能会导致cocos2d应用程序中的错误。

Cocos2D将自动检测您的硬件,并将加载适当的图像。 您可以更改AppDelegate.m中的默认后缀。

AFAIK,没有iPhone 5图像的后缀,所以你可以通过检测设备高度来手动检测和加载你的自定义精灵:

CGRect screenBounds = [[UIScreen mainScreen] bounds]; if (screenBounds.size.height == 568) { // code for iPhone 5 } else { // code for all other iOS devices } 

正如其他人所说的,您可以通过模拟器(硬件 – >设备)testing所有设备,

正如@Srikanth所提到的,包括image.png和image@2x.png,系统会自动为高分辨率屏幕select较高分辨率的图像,为低分辨率屏幕自动select较低分辨率的图像。 这适用于iPhone和iPad。

对于iPhone 5,屏幕仍然是视网膜。 系统会自动select您的 – @ 2x图像。 您可以在界面生成器或代码中定义自动布局(或弹簧和支柱)。

如果由于某种原因,您绝对需要一个特定于iPhone 5屏幕的图像,我相信您可以添加一个image-568h@2x.png,系统将自动select4英寸屏幕。

我能想到的唯一原因就是在你的捆绑包中包含一个-568h @ 2x的图像用于启动图像:您需要一个特定的4英寸屏幕。

另外,关于模拟器:您可以testing所有5个分辨率。 在模拟器菜单栏(屏幕顶部)select硬件>设备。 在这里您可以select所有5种分辨率。

每个图像可以有两个版本

image.png,image@2x.png

系统会自动selectimage@2x.png,如果它是一个视网膜设备,你可以参考image.png

同样在模拟器中,你可以去硬件 – >设备,然后select,如果你想看到视网膜或没有。

如果您使用的是cocos2d,那么您需要在视网膜分辨率的图像上使用-hd后缀。 看看他们的维基页面的更多信息。

我自己并不使用cocos2d,但从它的声音来看,iPhone 5的屏幕分辨率是通过相应地调整布局来处理iPad屏幕分辨率的处理。 对于cocos2d和iPhone 5,在stackoverflow中search应该会产生一些好的结果。