如何让我的应用程序通用? (3.5“,4”和iPad)

时间:2013-08-16 04:07:01

标签: iphone ipad xcode4.5 screen-resolution ios-universal-app

我是Xcode的新手,并且由于我以前的编程经验,Xcode中的Storyboard以及大多数这个网站,我已经能够通过一些相当简单的应用程序进行搜索。

我无法弄清楚的一件事是如何让我的应用程序具有普遍性?我设置应用程序的方式是它看起来很像带有页面和应用程序图标的iPhone主屏幕。然而,当我点击“更改为iPhone 5”按钮时,1)它只更改我的FirstViewController和2)我的图标都不对齐。

我是否制作另一个故事板(如果是,怎么做?)?我是否为每个屏幕分辨率制作另一个视图控制器?对于这些问题中的任何一个,我是否编程测试以查看我正在使用哪个设备以及选择正确的故事板或ViewController?我的应用程序目前已设置为通用,但我仍然无法为视图控制器和其他东西找到iPad分辨率选项。

请尽量简单。我只是在很短的时间内这样做了。感谢您在这里和本网站的所有帮助!

2 个答案:

答案 0 :(得分:0)

初始化故事板:

CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size;
UIViewController *initialViewController;
if (iOSDeviceScreenSize.height == 480)
{
    // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone35
    UIStoryboard *iPhone35Storyboard = [UIStoryboard storyboardWithName:@"iPhone4" bundle:nil];

    // Instantiate the initial view controller object from the storyboard
       initialViewController  = [iPhone35Storyboard instantiateInitialViewController];
}

if (iOSDeviceScreenSize.height == 568)
{  
 // iPhone 5 and iPod Touch 5th generation: 4 inch screen
    // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone4
    UIStoryboard *iPhone4Storyboard = [UIStoryboard storyboardWithName:@"iPhone5" bundle:nil];
    initialViewController  =  [iPhone4Storyboard instantiateInitialViewController];
}
    self.window.rootViewController  = initialViewController;
    [self.window makeKeyAndVisible];
return YES;

答案 1 :(得分:0)

因此,为了让iPad版本正常运行,请按以下步骤操作:

首先转到目标设置,向下滚动到“部署信息”,然后将其从iPhone更改为通用 Step 1

接下来,您需要创建一个新的Storyboard文件。在顶部的栏上输入文件>新>文件,这个东西应该弹出: New Storyboard 选择iOS>用户界面>故事板后,如上图所示,单击下一步,它将询问iPhone或iPad。选择iPad后,新文件将准备好映射iPad的界面。但是,您需要确保应用程序使用它。因此,请返回目标设置并向下滚动到“部署信息”并切换到iPad: iPad Settings

将“主界面”选项设置为新故事板文件的名称。

至于准备iPhone 5,那部分可能会有点烦人。我发现额外的空间对于任何重要的添加都太小了,但是太大而不容易被忽略。您如何处理它将根据您的应用程序的不同而有很大差异。根据您的描述,使用iPhone屏幕等应用程序图标,您可能希望拥有一排额外的图标,就像iOS一样。要做到这一点,你可以以编程方式管理它,或者你可能想要为iPhone 4和iPhone 5分别设置故事板。如果你想要单独的故事板,this question将有你的解决方案。