现在Apple即将开始发布 iPhone 5,我正在考虑扩展我的应用程序,以便它们在iPhone 5上全屏显示。我在模拟器上运行我的应用程序,即使是那些UITableView
延伸到屏幕底部的应用程序,黑条也会出现在屏幕的顶部和底部。
这是我的问题:为iPhone 5扩展应用程序的最佳做法是什么?
我现在应该为3.5和4英寸的屏幕制作一个单独的笔尖,还是在代码中扩展所有内容?
我正在尝试使过渡尽可能顺利,因此我呼吁了解 SO 来引导我了解为两个屏幕构建的最佳方法是什么。
在您的应用程序中利用完整的 4" 屏幕似乎就像添加一个名为Default-568h@2x.png
640 x 1136 的新默认图像一样简单。Xcode 4.5 实际上会通过添加适当大小的黑色图像和为您的项目命名。
对于使用标准 UI 组件(例如表格视图)的应用程序,表格会神奇地扩展以填满屏幕。我更新了一个工作应用程序,它实际上就是这么简单,只有几个与我自己的代码和 UI 设置相关的小问题。但总而言之,非常容易。
将此与我(为我自己)开发的另一个应用程序进行对比,该应用程序除了 UIViews 之外不使用任何标准 UI 组件。为了同时处理 3.5" 和 4" 屏幕,我不得不花费大量时间重构代码,这些代码需要了解应用程序的各种操作的屏幕尺寸。(在这种情况下,应用程序更像是一个游戏/模拟器,而不是生产力应用程序。)
因此,您的里程可能会因支持 4 英寸屏幕所需的工作量而异。正如我所发现的,这取决于您的应用程序的复杂程度和“非标准”程度。
在为大屏 iphone 5 更新现有应用程序时,您可能还会发现屏幕底部不是“可点击”的。例如,如果您在屏幕底部有一个工具栏,则该工具栏将正确显示,但按钮不会对触摸做出反应。如果是这种情况,您需要告诉应用程序该窗口正在使用全屏。
如果你有MainWindow.xib
,打开它,window
在属性检查器中选择并确保选中“启动时全屏”。
如果您的项目中没有(并且大多数较新的项目没有),那么您需要在应用程序委托MainWindow.xib
中添加一行:applicationDidFinishLaunching
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[window setFrame:[[UIScreen mainScreen] bounds]];
...
}
我把它放在方法的开头。像魅力一样工作。
您将在模拟器XCode->Targets->Summary->iPhone/iPod Deployment Info( Retina 4-inch )中找到此路径
您需要添加尺寸为 640 x 1136 的默认图像。
AppDelegate
在您的文件中应用此代码
mainWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
mainWindow.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
您将获得窗口的主屏幕尺寸。每当您想签入您的类文件时,还有一件事只需添加此代码
if ([UIScreen mainScreen].bounds.size.height > 500.0f)
对于您的视图控制器,只需添加一个属性autoresizingMask
self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
这对我来说很好。
我正在寻找同样的问题,试图让 iPhone 5 (4") 将我的 xib 文件呈现为全屏,我找到了这个答案,它说你只需要添加Default-568h@2x.png
图像来告诉 iOS 它需要呈现你的应用程序在 4 英寸全屏。只是添加这个解决了我的问题。