我的问题很简单:1.我做了一个iphone应用程序,全部在cocos2d中完成。2.我将其改编为iphone4retina,所有PNG文件都有高清副本。
在iPhone中运行,应用程序显示正确(320x480)。在iPhone4视网膜上运行时,该应用程序也显示正确(640x960)。
但在iPad上运行,如果应用程序仅设置为iPhone,则它可以正常运行,但只能以iPhone分辨率(320x480)运行。如果应用程序设置为iPhone/iPad,当然会显示错误。
我相信应该有一个选项,强制一个视网膜可编辑的iPhone应用程序也在iPad上以视网膜的形式运行(苹果人不会傻到错过它),但我就是找不到它。
选项在哪里?或者,有没有另一种选择,cocos2d也有同样简单的开关来完成这项工作?我不需要建议,例如使用相对坐标或任何需要修改超过二十行代码的东西。
据我所知,iPhone应用程序没有自动适应iPad。你仍然应该能够为iPhone和iPad创建一个通用的应用程序,然后根据你是在一台设备上还是在另一台设备中运行来重新创建你的UI。
具体来说,您可以:
-
为通用应用程序(armv6和armv7,针对iPad和iPhone)创建一个XCode项目,并在那里导入您现有的项目(源、资源、设置)。
1b。(你可以修改你现有的项目,但这可能更难正确完成。)
-
除了iPhone的图标和默认图像外,还可以根据iPad指南添加图标和默认图片;
至于其余部分,您可以采用与此处为Xibs强调的方法类似的方法:
-
iPad测试:
+(Bool)是Ipad{return([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdimPad);}
-
加载前翻译图像名称:
+(NSString*)properImageFileName:(NSString*imageName{如果([xxxx-isIpad]){return[NSString字符串WithFormat:@"ipad_%@",imageName];}其他{return imageName;}}
因此,如果你在iPhone上,图像名称不会更改,并且将遵循iPhone的视网膜显示惯例;如果你在iPad上,你可以随时更改名称并使用正确的图像。(当然,您可以使用您喜欢的惯例来识别iPad图像)。
这应该会让它变得很琐碎,但请记住,在通用应用程序中拥有所有图像会带来的尺寸损失。