自动调整iPhone xib应用程序以适应iPad

3

我使用xib制作了一个iPhone应用程序,其中包括5-6个屏幕。现在我想自动调整iPad的显示。我正在使用xcode 4.6。

我是否必须使用storyboards重建整个代码?这将是一项非常繁琐的工作。是否有任何解决方案?


你正在使用自动布局吗? - Abdullah Shafique
不,自动布局未被选中。如果我使用自动布局,在设备上代码将会崩溃,或者如果我尝试在旧版本模拟器上运行也会出现问题。 - Deepak Thakur
如果设备的iOS版本大于5,那么Storyboard是管理iPad或iPhone XIB文件的不错选择。 - Nitin Gohel
可能是重复的问题:iPhone Interface Builder and Delegates - Vaibhav Saran
2个回答

6

您需要为iPad创建新的xib文件,并将它们命名为ViewController_iPhone.xibViewController_iPad.xib,当切换视图时,只需放置一个简单条件。

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
    ViewController *viewController = [[ViewController alloc] initWithNibName:
                 @"ViewController_iPad" bundle:nil];
} else {
    ViewController *viewController = [[ViewController alloc] initWithNibName:
                 @"ViewController_iPhone" bundle:nil];
}

在每个地方都放置这个 if-else 条件难道不会很繁琐吗? - Vaibhav Saran

3

使用自动布局,一切都会自动完成。

图片描述

如果不使用自动布局,那么制作两个xib将是更好的选择。将尺寸为ipad大小的xib与相同名称的文件放在一起,并在类名后加上~ipad

例如,如果您的xib名称是myClass.xib,那么可以创建另一个名称为myClass~ipad.xib的文件。


@VaibhavSaran:我没有使用自动布局,而是使用单独的xibs来为iPhone和iPad创建不同的界面,通过在xib名称中使用iphone和ipad后缀。我的问题是,是否可以像iPhone 5那样使用一些后缀,如~-568h,来适配更长的iPhone屏幕? - iphondroid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接