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

时间:2012-09-13 09:00:34

标签: ios xcode ios6 xcode4.5 iphone-5

  

可能重复:
  How do I support the taller iPhone 5 screen size?

如何使我的应用程序4英寸准备好?我在iOS6GM模拟器中的应用程序看起来不是4英寸大小。 在xcode中有任何选项可以使用全部4英寸吗?

enter image description here

2 个答案:

答案 0 :(得分:18)

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

iOS 6中的自动旋转正在发生变化。在iOS 6中,不推荐使用UIViewController的shouldAutorotateToInterfaceOrientation:方法。取而代之的是,您应该使用supportedInterfaceOrientationsForWindow:shouldAutorotate方法。因此,我添加了这些新方法(并保持旧的iOS 5兼容性):

-(BOOL)shouldAutorotate {
  return YES;
}

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

由于旋转的变化,这只是记得在iOS 5和iOS 6中测试自动旋转。

答案 1 :(得分:3)

在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)

代替。

但我不确定这是否是一个好的解决方案。如您所见,您将在CGRectGetHeight([UIScreen mainScreen].applicationFrame)的每个位置发送kViewHeight。我试过用

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

但因编译错误而失败。

虽然效果很好,但我认为必须有更好的解决方法。 ;)