将iPhone xib转换为iPad xib?

Nex*_*Rev 75 iphone xcode xib ipad ios

你怎么做呢?我看到了一个视频教程,但屏幕太小了.此外,除了更改视图大小外,我还需要对我的iphone应用程序进行其他重大更改才能转换为iPad吗?

小智 159

我能够将其缩小到几个方面,所以这里有适合我的步骤:

1)制作iPhone xib文件的副本并将其添加到项目中

2)右键单击文件(在xcode中)和Open As> Source Code

3)第二行应如下所示:

<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
Run Code Online (Sandbox Code Playgroud)

用...来代替:

<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
Run Code Online (Sandbox Code Playgroud)

4)搜索"IBCocoaTouchFramework"并用"IBIPadFramework"替换所有出现的内容

5)保存文件并打开为>界面生成器 - iOS

该文件可能仍然看起来像普通的iPhone xib,但对我来说,一旦我在属性检查器中将状态栏更改为"黑色",其余的xib就会被"抢购"到iPad xib中

  • 请注意,在最新的XCode5中,这已经发生了一些变化.而不是在步骤4中查找"IBCocoaTouchFramework",而是查找"iOS.CocoaTouch"并简单地添加".iPad"到最后.只有一次出现,它与第一次编辑位于同一行.另请注意,当您在IB中打开它时,只需将其交换为纵向或横向(它曾经不是)然后再将其交换回来,它会调整得很好. (7认同)
  • 真棒.Xcode 4的确定答案.所有upvotes的那个已经过时了:) (4认同)
  • 正如您所料,此方法也适用于您首先创建iPad资源并希望恢复到iPhone资源的情况. (4认同)

Seb*_*iew 33

在Xcode 5中你应该只是:

找:

<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4510" systemVersion="12F37" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
Run Code Online (Sandbox Code Playgroud)

替换为:

<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510" systemVersion="12F37" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
Run Code Online (Sandbox Code Playgroud)

请注意,我们只是将.iPad添加到typetargetRuntime属性中.

打开后,只需选择一个新的尺寸进行调整.示例:iPad全屏.


ken*_*ytm 29

假设您使用Xcode 3的SDK ,

  1. 打开IB.
  2. 打开XIB.
  3. 文件 - >使用自动调整掩码创建iPad版本.

  • 呃...除了没有Interface Builder之外,我找不到XCode 4中的等效选项. (7认同)

Tej*_*lli 22

XCode4:

在xcode 4中,我们不能为单个xib做到这一点,但我们可以同时创建各自的ipad版本.

在将项目配置为ipad之前,只有为iphone配置项目时,右键单击目标并单击复制.

现在选择"复制并转换到ipad".创建一个新的目标和一组新的xib.它应该减少一些工作.

希望能帮助到你.


ant*_*kes 14

Xcode 4:

使用自动调整大小面具创建iPad版的功能已经在Xcode 4去除眼下最简单的方法是使用的Xcode 3的转换,因为笔尖(的.xib)文件格式并没有改变.

Xcode 3和4现在可以通过简单地选择不同的文件夹安装在同一系统上(请参阅磁盘映像上的安装说明).

否则,您需要从iPhone版本复制/粘贴UI元素,并将它们重新链接到您的代码.

  • 我希望我被允许与这一个测试版IDE一起咆哮这个测试版操作系统:( (2认同)

Gui*_*ume 6

让计算机做计算机工作怎么样?
更快,更少的错误风险.

这是一个基于Jag优秀答案的工作流程,但是使用sed自动化.

首先,让我们设置一些东西.我们只需要这样做一次.
在包含XIB的目录中,使用以下内容创建两个文件:

档案iPhoneToiPadXIBConversion.sed:

s/com.apple.InterfaceBuilder3.CocoaTouch.XIB/com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/g
s/IBCocoaTouchFramework/IBIPadFramework/g
Run Code Online (Sandbox Code Playgroud)

和文件iPadToiPhoneXIBConversion.sed:

s/com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/com.apple.InterfaceBuilder3.CocoaTouch.XIB/g
s/IBIPadFramework/IBCocoaTouchFramework/g
Run Code Online (Sandbox Code Playgroud)


安装程序现已完成.要转换XIB,请在终端中输入以下两个命令之一:

iPhone转iPad转换:

sed -f iPhoneToiPadXIBConversion.sed  MyViewController~iphone.xib  > MyViewController.xib
Run Code Online (Sandbox Code Playgroud)

iPad到iPhone的转换:

sed -f iPadToiPhoneXIBConversion.sed  MyViewController.xib  > MyViewController~iphone.xib
Run Code Online (Sandbox Code Playgroud)





为了好玩,让我们在zsh中创建两个函数,使转换更加简单:

function convertiPadXIBToiPhone () {
    newXibName=`echo "$1" | /usr/bin/sed "s/.xib/~iphone.xib/"`
    `/usr/bin/sed -f iPadToiPhoneXIBConversion.sed "$1" > "$newXibName"`
    echo "Did convert $1 to $newXibName."
}

function convertiPhoneXIBToiPad () {
    newXibName=`echo "$1" | /usr/bin/sed "s/~iphone.xib/.xib/"`
    `/usr/bin/sed -f iPhoneToiPadXIBConversion.sed "$1" > "$newXibName"`
    echo "Did convert $1 to $newXibName."
}
Run Code Online (Sandbox Code Playgroud)

将此添加到zsh配置后,转换XIB很简单:

convertiPadXIBToiPhone MyViewController.xib
Run Code Online (Sandbox Code Playgroud)

要么

convertiPhoneXIBToiPad MyViewController.xib
Run Code Online (Sandbox Code Playgroud)


Dan*_*ark 5

使用"视图作为源代码"在XCode 4中打开XIB.

之前

备份有问题的笔尖.

替换这个粘性物质

    <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
    <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
        <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
        <integer value="1056" key="NS.object.0"/>
    </object>
    <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
        <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
        <integer value="3100" key="NS.object.0"/>
    </object>
    <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
    <int key="IBDocument.defaultPropertyAccessControl">3</int>
    <string key="IBCocoaTouchPluginVersion">301</string>
Run Code Online (Sandbox Code Playgroud)

对于这个其他的粘性物质

    <string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
    <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
        <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
        <integer value="3100" key="NS.object.0"/>
    </object>
    <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
    <int key="IBDocument.defaultPropertyAccessControl">3</int>
    <string key="IBCocoaTouchPluginVersion">301</string>
Run Code Online (Sandbox Code Playgroud)

然后,对于使用集成IB的笔尖中的每个视图,删除它然后点击撤消.

然后在热水中淋浴,以消除你可能有的令人作呕的感觉.