你怎么做呢?我在上面看到了一个视频教程,但是屏幕太小。另外,除了更改视图大小之外,我还需要对iphone应用程序进行其他一些重大更改才能转换为iPad吗?
Answers:
假设您拥有带有Xcode 3的SDK ,
我能够将其范围缩小到几件事,因此以下是对我有用的步骤:
1)复制iPhone xib文件并将其添加到您的项目中
2)右键单击文件(在xcode中),然后单击“打开方式”>“源代码”
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)保存文件并打开为> Interface Builder-iOS
该文件看起来仍然像是普通的iPhone xib,但是对我而言,一旦我在属性检查器中将状态栏更改为“黑色”,其余的xib便会“捕捉”到iPad xib中
在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全屏。
<...type="com.apple.InterfaceBuilder3.CocoaTouch.XIB"...>
。
XCode4:
在xcode 4中,我们无法针对单个xib做到这一点,但是我们可以一次创建各自的ipad版本。
在将项目配置为ipad之前,如果仅针对iphone配置了该项目,请右键单击目标并单击重复项。
现在,选择“复制并过渡到ipad”。将创建一个新的目标和一组新的xib。它将减少一些工作。
希望能帮助到你。
让计算机完成计算机的工作怎么样?
更快,更少的错误风险。
这是一个基于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
使用“查看作为源代码”在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>
为了这个
<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的笔尖中的每个视图,将其删除然后单击“撤消”。
然后用热水淋浴以擦去您可能有的恶心感。
您可以将XIB作为文本文件打开并更改UIView大小:
在导航器中右键单击您的XIB文件,然后选择:“打开为...”作为源文件打开。
找到UIView参考并更改Frame值:
<object class="IBUIView" id="191373211">
<string key="NSFrame">{{0, 20}, {768, 1024}}</string>
在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
我将记录在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
将新创建的文件添加到项目中
Jag的答案很好。但是,如果在Xcode 5中打开/创建XIB,则会遇到问题。
对于Xcode 5
1)复制iPhone xib文件并将其添加到您的项目中
2)右键单击文件(在xcode中),然后单击“打开方式”>“源代码”
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。
除了Jag给出的答案外,还搜索“ 320,460”并将其替换为768,1024,您的XIB将被调整为iPad尺寸。