9

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

如何让我的应用程序支持 4 英寸?我在 iOS6GM 模拟器中的应用看起来不是 4 英寸大小。xcode中是否有任何选项可以使用所有4英寸?

在此处输入图像描述

4

2 回答 2

18

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

iOS 6 中的自动旋转正在发生变化。在 iOS 6 中,shouldAutorotateToInterfaceOrientation:不推荐使用 UIViewController 的方法。取而代之的是,您应该使用supportedInterfaceOrientationsForWindow:andshouldAutorotate方法。因此,我添加了这些新方法(并保留旧方法以兼容 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 中测试自动旋转。

于 2012-09-13T09:07:05.070 回答
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

但因编译错误而失败。

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

于 2012-09-13T09:15:24.263 回答