你是怎么做到的?我看到了一个视频教程,但屏幕太小了。此外,除了更改视图大小外,我还需要对我的iphone应用程序进行其他重大更改才能转换为iPad吗?
答案 0 :(得分:159)
我能够将其缩小到几个方面,所以这里有适合我的步骤:
1)制作iPhone xib文件的副本并将其添加到项目中
2)右键单击文件(在xcode中)和Open As>源代码
3)第二行应该如下:
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
替换为:
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
4)搜索“IBCocoaTouchFramework”并将所有匹配项替换为“IBIPadFramework”
5)保存文件并打开为&gt; Interface Builder - iOS
该文件可能仍然看起来像普通的iPhone xib,但对我来说,一旦我在“属性”检查器中将状态栏更改为“黑色”,其余的xib就会“抢占”到iPad xib中
答案 1 :(得分:33)
在Xcode 5中你应该只是:
查找:
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4510" systemVersion="12F37" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
替换为:
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510" systemVersion="12F37" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
请注意,我们只是将 .iPad 添加到type
和targetRuntime
属性中。
打开后,只需选择要调整的新尺寸。示例:iPad全屏。
答案 2 :(得分:29)
假设您使用Xcode 3
的SDK答案 3 :(得分:22)
XCode4:
在xcode 4中,我们无法为单个xib执行此操作,但我们可以同时创建各自的ipad版本。
在将项目配置为ipad之前,只有为iphone配置项目时,右键单击目标并单击复制。
现在选择“复制并转换到ipad”。创建一个新的目标和一组新的xib。它应该减少一些工作。
希望它有所帮助。
答案 4 :(得分:14)
Xcode 4 :
使用自动调整大小的创建iPad版本功能已从Xcode 4中删除。 现在最简单的方法是使用Xcode 3进行转换,因为nib(.xib)文件格式没有改变。
Xcode 3&amp;现在可以通过简单地选择不同的文件夹将4安装在同一系统上(请参阅磁盘映像上的安装说明)。
否则,您需要复制/粘贴iPhone版本的UI元素,并将它们重新链接到您的代码。
答案 5 :(得分:6)
让电脑做电脑的工作怎么样? 更快,更少的错误风险。
以下是基于excellent answer from Jag的工作流程,但是使用sed。
自动完成首先,让我们设置一些东西。我们只需要这样做一次。
在包含XIB的目录中,使用以下内容创建两个文件:
档案iPhoneToiPadXIBConversion.sed
:
s/com.apple.InterfaceBuilder3.CocoaTouch.XIB/com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/g
s/IBCocoaTouchFramework/IBIPadFramework/g
和档案iPadToiPhoneXIBConversion.sed
:
s/com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/com.apple.InterfaceBuilder3.CocoaTouch.XIB/g
s/IBIPadFramework/IBCocoaTouchFramework/g
安装程序现已完成。
要转换XIB,请在终端中输入以下两个命令之一:
iPhone转iPad转换:
sed -f iPhoneToiPadXIBConversion.sed MyViewController~iphone.xib > MyViewController.xib
iPad转iPhone:
sed -f iPadToiPhoneXIBConversion.sed MyViewController.xib > MyViewController~iphone.xib
为了好玩,让我们在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."
}
将此添加到zsh配置后,转换XIB非常简单:
convertiPadXIBToiPhone MyViewController.xib
或
convertiPhoneXIBToiPad MyViewController.xib
答案 6 :(得分:5)
使用“view as source code”在XCode 4中打开XIB。
备份有问题的笔尖。
替换这个goo
<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>
这个其他的goo
<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>
然后,对于使用集成IB的笔尖中的每个视图,删除它然后点击撤消。
然后在热水中淋浴,以消除你可能有的那种令人作呕的感觉。
答案 7 :(得分:4)
您可以将XIB作为文本文件打开并更改UIView大小:
在导航器中右键单击您的XIB文件,然后选择:“打开为...” 作为源文件打开。
找到UIView引用并更改Frame值:
<object class="IBUIView" id="191373211">
<string key="NSFrame">{{0, 20}, {768, 1024}}</string>
答案 8 :(得分:3)
Xcode 5更新
targetRuntime =&#34; iOS.CocoaTouch&#34;
到
targetRuntime =&#34; iOS.CocoaTouch.iPad&#34;
答案 9 :(得分:3)
在XCode 4.3.2中,我创建iPad版xib的最简单方法是复制该xib文件并在文件名中添加~ipad
后缀。并将“myVC.xib”和“myVC~ipad.xib”添加到您的项目中。请注意,它是“~ipad”而不是“~iPad”。您的应用程序将在iPad上运行时自动使用该~ipad版本。这也适用于资源文件(例如图像)。
目前我能找到的最佳参考资料...... https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/ImageSoundResources/ImageSoundResources.html
答案 10 :(得分:2)
对于Xcode 5
1)制作iPhone xib文件的副本并将其添加到项目中
2)右键单击文件(在xcode中)和Open As&gt;源代码
3)第二行应该如下:
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4510"
将其更改为
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510"
4)第8行应如下所示:
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
将其更改为
<rect key="frame" x="0.0" y="64" width="768" height="960"/>
就是这样,你有iPad XIB。但真正归功于Jag。
答案 11 :(得分:2)
我将记录我在Xcode 4.5中所做的事情:
fixpattern.sh
cp REPLACEME_Iphone.h REPLACEME_Ipad.h
sed -e 's/REPLACEME_Iphone/REPLACEME_Ipad/g' REPLACEME_Ipad.h > REPLACEME_Ipad_tmp.h
mv REPLACEME_Ipad_tmp.h REPLACEME_Ipad.h
cp REPLACEME_Iphone.m REPLACEME_Ipad.m
sed -e 's/REPLACEME_Iphone/REPLACEME_Ipad/g' REPLACEME_Ipad.m > REPLACEME_Ipad_tmp.m
mv REPLACEME_Ipad_tmp.m REPLACEME_Ipad.m
cp REPLACEME_Iphone.xib REPLACEME_Ipad.xib
sed -e 's/com.apple.InterfaceBuilder3.CocoaTouch.XIB /com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
sed -e 's/IBCocoaTouchFramework/IBIPadFramework/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
sed -e 's/320, 416/768, 1004/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
sed -e 's/REPLACEME_Iphone/REPLACEME_Ipad/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
在fixfile
中创建要转换的文件列表,每行都是没有扩展名的文件名。如果原始文件名为AAA_Iphone.h
,则只需添加AAA
。如果您的原始文件不是此模式,则需要修改脚本。
在命令行中运行
cat fixfile | while read line ; do sed -e "s/REPLACEME/${line}/g" fixpattern.sh ; done > fixall.sh
查看并运行fixall.sh
将新创建的文件添加到项目中
答案 12 :(得分:1)
除了Jag给出的答案还搜索“320,460”并将其替换为768,1024,您的XIB将调整为iPad尺寸。
答案 13 :(得分:1)
对于Xcode 4,
您无需为每个设备创建单独的目标。相反,您可以将项目摘要中的设备更改为已经在iPhone中的Universal。这可以在Xcode 4.2上将iOS 5 App更新为Universal的链接中找到。因此,它会为你做过渡。
答案 14 :(得分:0)
Jag has given Great Answer.
在某些情况下。
无需在Ipad XIB中转换您的Iphone XIB。您可以使用Autoresizingmask 并获得运行Ipad。只需要配置你的APP运行 在通用模式下使用适当的自动调整掩码。
答案 15 :(得分:0)
听起来最好的解决方案是始终先开发iphone,然后在完成后,添加ipad目标,让xcode进行更新。我犯了同样的错误,选择了通用启动,它创建了前几个文件,但是其他每个xib都必须在ipad文件夹中手动重新创建。大痛苦
答案 16 :(得分:0)
只需更换
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14854.2" targetRuntime="iOS.CocoaTouch"
使用
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="14854.2" targetRuntime="iOS.CocoaTouch.iPad"