在Xcode中开发全屏4英寸的应用程序

可能重复:
我如何支持更高的iPhone 5屏幕尺寸?

如何使我的应用程序4英寸准备好? 我在iOS6GM模拟器的应用程序看起来不是4英寸大小。 有没有在Xcode选项使用所有4英寸?

在这里输入图像说明

有些用户报告说在添加启动镜像Default-568h@2x.png (见下文)后已经修复了。 为了更新到iPhone5我做了以下几点:

自动旋转在iOS 6中正在改变。在iOS 6中,不推荐使用UIViewController的shouldAutorotateToInterfaceOrientation:方法。 在它的地方,你应该使用supportedInterfaceOrientationsForWindow:shouldAutorotate方法。 因此,我添加了这些新的方法(并保持与iOS 5兼容的旧版本):

 -(BOOL)shouldAutorotate { return YES; } - (NSUInteger)supportedInterfaceOrientations{ return UIInterfaceOrientationMaskAllButUpsideDown; } 
  • 然后我修复了需要它的视图的自动布局。
  • 将模拟器中的图像复制到iTunes Store的启动视图和视图到PhotoShop中,并将它们导出为png文件。
  • 默认图像的名称是:Default-568h@2x.png尺寸为640 x 1136,屏幕尺寸为320 x 568。
  • 我已经降低了iOS 4的向后兼容性。原因是这个新的Xcode不再支持armv6代码。 因此,现在我能够支持的所有设备(运行armv7)都可以升级到iOS 5。

这一切都只是记得在iOS 5和iOS 6中testing自旋,因为旋转的变化。

在iPhone 5发布之前,我只是使用

 #define kViewHeight 460.f // or 480.f if you don't have a status bar #define kViewWidth 320.f 

但现在,我想用

 #define kViewHeight CGRectGetHeight([UIScreen mainScreen].applicationFrame) #define kViewWidth CGRectGetWidth([UIScreen mainScreen].applicationFrame) 

代替。

但我不确定这是否是一个好的解决scheme。 正如你所看到的,你将在每个使用kViewHeight地方调度CGRectGetHeight([UIScreen mainScreen].applicationFrame) 。 我试过使用

 extern float kViewHeight; // in .h float kViewHeight = CGRectGetHeight([UIScreen mainScreen].applicationFrame) // in .m 

但由于编译错误而失败。

虽然它运作良好,我认为必须有一个更好的解决方法。 ;)