通用iPad / iPhone XIBs - Xcode 4

时间:2011-06-07 20:48:11

标签: iphone ipad xcode4 xib universal

我想创建一个具有两个不同XIB文件的通用应用程序。一个用于iPhone,一个用于iPad。他们使用相同的代码,只是不同的UI。我如何创建“通用”应用程序?

感谢。

6 个答案:

答案 0 :(得分:6)

只需复制xib文件,然后将其重命名为 FileName~ipad.xib ,将其添加到您的项目中,iOS将自动加载正确的xib文件,参考您的设备。

答案 1 :(得分:5)

首先(您说您正在创建基于视图的应用程序),请根据iPhone或iPad视图创建它。

这将为您提供appdelegate,viewcontroller和视图(根据您选择的选项为iPad或iPhone量身定制)

现在添加另一个xib,转到文件>新文件...查看对话框左侧并选择iOS组中的“用户界面”。在右侧窗格中,选择View并单击next,现在选择iPad或iPhone(基于您最初选择的内容)创建xib时,选择它,然后选择主窗格左侧的文件所有者。然后,转到Utilities(右窗格)并选择Identity inspector(顶部的第3个选项图标),将类更改为与创建基于视图的应用程序时创建的viewController相同。您可以在两个视图上以相同的方式绑定出口,但它们将共享相同的viewController。

确定您的应用在运行时运行的设备,您可以使用约定

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

并根据这种条件语句加载视图。为了清楚起见,请记住使用其名称加载一个笔尖,以便您可以选择与环境相关的笔尖(上图),框架将完成剩下的工作。

请注意,它永远不会像您想象的那样简单(如果您以前从未这样做过)充分利用iPad房地产的应用程序通常倾向于使用专用视图更好地工作,尽管这并非总是如此案子。任何动态添加的屏幕组件都需要进行编码,同时考虑到屏幕空间的差异。

这很容易变成一篇文章,我建议你做一些阅读,查看源代码并深入研究。你只需要通过实验就能学到很多东西。

答案 2 :(得分:1)

像这样创建一个宏:

#define IS_IPAD ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)

您的XIB的名称,以便您可以这样做:

self.viewController = [[ViewController alloc] initWithNibName:IS_IPAD?@"ViewController~iPad":@"ViewController" bundle:nil];

答案 3 :(得分:1)

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
 UIInterfaceOrientation des=self.interfaceOrientation;
 if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) //ipad
 {
    if (des==UIInterfaceOrientationPortrait||des==UIInterfaceOrientationPortraitUpsideDown)
    {
      //Ipad portarit
    } 
    else
    {
       //ipad landscape
    }
else //iPhone
{
if (des==UIInterfaceOrientationPortrait||des==UIInterfaceOrientationPortraitUpsideDown)
    {
      //iPhone portarit
    } 
    else
    {
       //iPhone landscape
    }
}

答案 4 :(得分:0)

如果你有现有应用程序,那么有选项 目标 - >升级为iPad / iPhone

之后添加代码以检查应用程序是否在iPad或iPhone上运行。

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    //load xib of ipad
}
else
{
    //load xib of iphone
}

答案 5 :(得分:0)

您还可以使用xcode 4的功能。创建新项目时可以选择一个名为“通用应用程序”的选项。 基于此模板的应用程序使用上述分离。 你可以获得带有视图的iphone和ipad的文件夹。