创建在Interface Builder通用应用单一的.xib? (IOS)(Create si

2019-07-28 20:08发布

道歉,如果这是一个愚蠢的问题,但我做了一些谷歌上搜索和如此搜查,并没有发现任何人问这个问题询问。

我一直在做iOS开发有一段时间了,但我完全新的界面生成。 我想知道的是:有什么办法只创建ONE的.xib文件,然后在一个通用的应用程序使用它为iPhone和iPad?

看来愚蠢我必须单独创建它们; 为什么两次工作铺设出来的东西比在Interface Builder一次,当我可以做一次(与屏幕尺寸小的调整)的代码?

请让我知道如果我错过了/在这里误解的东西。 就像我说的,我是一个完整的Interface Builder的新手:)

编辑:我过去在iPhone和iPad版本是相同的提交非接口建设者游戏在App Store,所以我不关心使游戏外观/感受每一个设备上的不同。 我打算为他们看起来完全一样,除了一些微小的改变的定位由于在宽高比的差。

Answer 1:

如果你知道结果视图会是什么样子的基础上,自动尺寸,你的确可以只用一个.xib 。 可以派上用场,如果认为仅仅是某种只要你想它到autoresizes共享组件。 但是,如果你需要的观点看不同的方式在iPad比iPhone,只使用两个.xib秒。 这是可能的,然后装入作为所需的适当的一个,例如在实例初始化,这样控制器的-init:

- (id)init
{
    if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
    {
         self = [super initWithNibName:@"YourNibForPad" bundle:nil];
    }
    else
    {
         self = [super initWithNibName:@"YourNibForPhone" bundle:nil];
    }
    if (self) { /* initialize other ivars */ }
    return self;
}


Answer 2:

主要的原因是XIBs是独立的文件,是因为苹果认为用户界面设计的iPhone / iPod的触摸和iPad应分别针对每个。 这呼应了其iOS应用程序编程指南 ,它说以下内容:

对于视图,主要的修改是重新设计你的看法布局,以支持更大的屏幕。 只是将现有的视图可以工作,但通常不会产生最好的结果。 你的新界面应充分利用可用空间,并采取新的界面元素的优势在哪里合适。 这样做更容易导致在感觉更自然的用户,而不仅仅是一个iPhone应用程序在大屏幕上的界面。

虽然这可能需要一段时间来维持两个XIBs什么有效的一个UI,我觉得这是比使用一个XIB然后不必连接起来,以便将它们四处移动编程时XIB负载大部分的UI元素的更直接。 毕竟,有两个XIBs至少你可以看到每一个UI的样子,然后轻松地进行视觉上的变化。

顺便说一句,别忘了iOS 5中的故事板( 了解他们在这里 ),这使得管理视图/视图控制器层次结构要简单得多。



Answer 3:

尝试他们的名字

MyCell.xibMyCell ~ ipad.xib

然后:

[self.tableView registerNib: @"MyCell" forCellReuseIdentifier: @"MyUniqueIdentifier"];


Answer 4:

如果你使用IB,你需要创建2个独立的厦门国际银行文件的iPhone和iPad。 你需要一个单独的iPad厦门国际银行,使您的应用程序符合苹果iPad UI准则。



文章来源: Create single .xib for Universal app in Interface Builder? (iOS)