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

9

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

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

enter image description here

2个回答

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架构的代码。因此,现在可以升级到iOS 5的所有设备(运行armv7)都可以得到支持。

这就是全部内容,但请记得测试iOS 5和iOS 6中的自动旋转,因为旋转方面有所改变。


移除启动画面图片,清理项目并重新添加启动画面图片解决了我的问题!谢谢! - rockstarberlin

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)

相反,我不确定这是否是一个好的解决方案。正如你所看到的,你需要在使用kViewHeight时随处调用CGRectGetHeight([UIScreen mainScreen].applicationFrame)。我尝试过使用

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

但是编译错误了。

虽然它能够正常工作,但我认为一定有更好的解决方法。 ;)


我认为每次使用CGRectGetHeight([UIScreen mainScreen].applicationFrame)不会导致任何性能问题。 - Kaan Dedeoglu
@KaanDedeoglu 谢谢您的回复!我还没有测试过性能。是的,我认为它可能不会导致太多性能问题,这就是为什么我把它放在这里作为一个答案的原因。;) - Kjuly

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接