2012-09-20 28 views
13

是让他们出现在iPhone 5全屏苹果即将开始出货iPhone 5的,我期待为延长我的应用程序。我在模拟器上运行了我的应用程序,甚至连UITableView延伸到屏幕底部的应用程序,黑色条出现在屏幕的顶部和底部。扩展应用程式iPhone 5 - 最佳实践现在

这是我的问题:什么是扩展应用程序的最佳做法iPhone 5

我应该做一个单独的榫现在对于3.5和英寸的屏幕,或者在代码扩展的一切吗?

我试图使这一平滑过渡成为可能,所以我呼吁知识的SO来给我介绍到最好的办法就是建立两个屏幕的内容。

回答

13

利用应用程序中完整的4英寸屏幕看起来就像添加一个名为[email protected]的新的默认图像一样简单,尺寸为640 x 1136. Xcode 4.5实际上会提供为您自动添加黑色图像

对于使用标准UI组件(如表格视图)的应用程序,这些表格被神奇地扩展为填充屏幕,我更新了应用程序的工作方式,这实际上很简单,与有关我自己的代码和UI设置只有几个小问题,但所有的一切,很容易。

与其他应用程序,我的工作(我自己),它采用无日对比这e除UIViews之外的标准UI组件。为了处理3.5英寸和4英寸的屏幕,我不得不花费相当多的时间重构需要知道应用程序各种操作的屏幕大小的代码。 (在这种情况下,应用程序更多的是一种游戏/模拟器比说,一个生产力应用程序。)

所以,你的里程可能针对的支持4" 画面所需的工作量真的水平而有所不同。这将取决于如何复杂和“非标”的程序是,因为我已经发现了。

+0

在我的应用我加载一个NIB我的界面,使用标签栏为根视图,并自动调整大小的东西只是没有做的正确的事情的iPhone版本的你可以在UITabBarController的内部获得一个UITableView,以保持固定在同一个垂直位置,并且在垂直尺寸上增加正确的量(88pt或176px)?我的后续最佳实践问题会是,在代码中调整这些子视图更好吗,还是有一些方法可以通过NIB中的自动调整来可靠地工作? –

+0

@ScottLahteine在我提到的第一个应用程序中,我没有到任何特殊的(除了添加第三个默认图像)来获取表格视图来调整au大小tomatically。这些表格视图也位于导航控制器内,属于标签栏控制器的一部分。我会检查你的NIB文件是否有任何自动修复的怪异现象。 –

+0

具体来说,我需要一个子视图(一个UITableView)总是从顶部开始35pt,并且它的高度应该拉伸以便其底部总是从下面的标签开始为108pt,然后第二个子视图(高度为108pt)将保持固定正好在标签上方。 标签栏子视图应以什么尺寸为出发点?有关系吗?我期望一个固定在根视图底部的子视图保持固定在标签上方,这似乎是我现在混淆它的正式行为。工字梁似乎保留了原来的距离。啊,现在全部都落到了...... –

6

当更新的大屏幕iPhone 5的现有的应用程序,你可能还会发现,在屏幕的底部是不是“可点击”。例如,如果你有在屏幕底部的工具栏,该工具栏会显示正确,但按钮不会对触摸的反应。如果是这样的话,你需要告诉应用程序的窗口全屏使用。

如果你有MainWindow.xib,打开它,选择window,并在属性检查器中,确保“在启动全屏”被选中。

如果你没有在你的项目做MainWindow.xib(以及大多数较新的项目没有),那么你需要在你的应用程序代理的applicationDidFinishLaunching添加一个额外的行:

- (void)applicationDidFinishLaunching:(UIApplication *)application { 

    [window setFrame:[[UIScreen mainScreen] bounds]]; 
    ... 
} 

我把它在方法的开始。像魅力一样工作。

+0

在我的GL11游戏中,我必须在窗口拉伸到填满屏幕之前设置“启动时全屏”属性(没有此自动调整大小设置没有区别)。我也使用Apple的GLES2Sample项目中的MainWindow.xib。 – arberg

3

你会发现模拟器这个路径XCode-> Targets->摘要 - > iPhone/iPod的部署信息(视网膜4英寸)

你需要用大小添加默认图像640×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; 

这工作对我很好。