Xcode 4.2,如何将iPhone的xib文件转换成iPad的xib文件?

5
我创建了一个包含5个xib文件的项目。在iPad模拟器中运行该项目时,有些xib会以iPhone屏幕大小显示。我想将这些iPhone xib转换为支持iPad xib屏幕尺寸的版本。您有什么想法吗?
注:我希望同时支持iPhone和iPad。

如果您已经创建了针对iPhone的.xib文件,则请创建一个新的视图文件,以针对iPad为目标。同样,您可以为iPad创建单独的.xib文件。 - hp iOS Coder
1
是的,我发现那很有用。我有一个疑问,关于那个代码,我们正在检查它是否为iPhone或iPad,然后我们正在加载xib。但是,即使我没有检查条件,我的项目中的某些xib也被调整为iPad大小,而且我还创建了一个xib。 - Perseus
1
是的,好问题(+1评论)。即使对我来说也很奇妙。因为我在商店里有iPhone应用程序,然后我开始将其制作成通用应用程序。在开发阶段,我发现了同样的问题,特别是在一些表视图中。 - hp iOS Coder
我猜这将是原因。如果在创建xib时选中了Universal选项,它会自动切换。如果没有选择Universal,则需要创建两个xib。无论如何,感谢回复和+1评论。 - Perseus
iOS会自动使用后缀为“~ipad”的XIB文件来适配iPad设备。请注意这里的波浪线。 - Anton Unt
显示剩余3条评论
5个回答

18

您可以按以下步骤将iPhone的xib转换为iPad的xib。

右键单击文件(在Xcode中),选择“打开方式>源代码”

第二行应该像这样:

<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
Replace with:

<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">

搜索"IBCocoaTouchFramework"并替换所有出现的内容为"IBIPadFramework"

保存文件,然后选择 "打开方式" > "界面构建器 - iOS"

你可以对所有xib文件执行此操作,这样你就会得到iPad版的xib文件。

希望这能对你有所帮助。


2
抱歉我之前没有提到,我想要支持iPhone和iPad两种设备。但是我认为这个只能支持iPad。 - Perseus
你可以先制作 iPhone 的副本,然后应用上述步骤,这样就会为 iPad 创建新的 xib。 - Nitin
让我明确一下。您是说要复制iPhone的xib并将其重命名为**** ~.ipad,然后在源代码中,我应该按照您上面提到的更改xib所需的内容。我理解得对吗? - Perseus
我曾经遇到过同样的问题,多亏了Nit,现在它已经被修复并且像个冠军一样运行……非常感谢你提供这个信息片段。 - SpokaneDude

1

我认为这对你会有帮助

 if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
            self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil] autorelease];
        } else {
            self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil] autorelease];
    }

我只有 iPhone 的 xib 文件,没有 iPad 的 xib 文件。 - Perseus
当您创建新项目时,可以在设备系列中使用“通用”,并且不要点击“使用故事板”,然后您将获得iPad xib和iPhone xib。我认为您只使用了“iPhone”作为设备系列。请检查一下。 - Prasad G
我已经检查过了。目标设备系列显示为iPhone/iPad。 - Perseus
我使用iOS 5.0版本和Xcode4.2。它显示了三个选项,分别是通用、iPad和iPhone。 - Prasad G
在“摘要”选项卡下的“目标”中,设备:通用。 - Perseus
不不不 - 不要这样做!请使用苹果文档。将您的文件命名为ipad或iphone。请参见此处:https://dev59.com/MW445IYBdhLWcg3wWI-L#9603894 - Adam

1

然后,您应该创建或更新您的项目通用版本,并更改iPad XIB设置并自动调整大小。


你的意思是要重新创建整个项目吗?天啊。现在我可以在项目设置中看到目标设备系列为iPhone/iPad。有没有其他方法可以转换iPhone xib文件? - Perseus
没有其他方法可以自动将所有iPhone .xib转换为具有满意视图的iPad .xib。 - hp iOS Coder
如果您不介意的话。您能告诉我如何更新设置吗?只有少数xibs的大小不正确,其余都是正确的。而且我猜我的项目支持通用性。 - Perseus
系统更新后会自动创建iPad XIB,然后您可以像使用iPhone XIB一样使用它,并在iPad上运行,效果非常棒,您会得到很好的输出。 - vishiphone

1

我刚刚复制了旧的Xib文件并将其重命名为~ipad。在源代码中,我用iPad分辨率替换了320*480。我的UI即界面构建器看起来像iPad,我的应用程序正在检测iPad的Xib文件。感谢大家。


0

这对我有用:

在Finder中复制.xib文件。 在文本编辑器中打开复制的文件。 将“com.apple.InterfaceBuilder3.CocoaTouch.XIB”更改为“com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB”。 将所有“IBCocoaTouchFramework”的实例更改为“IBIPadFramework”。 搜索大小为{480, 320}的尺寸并进行编辑。或者只需在Xcode中重新打开文件,并使用GUI根据需要调整项目的大小。 如果需要将iPad xib更改为iPhone xib,也可以反过来使用此方法。


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