我有一个iPhone应用程序,它有一个故事板。现在我还想提供一个iPad应用程序。我问自己是否有一个函数可以帮助我将iPhone的故事板转换成iPad的故事板。

具体来说:

是否有类似的功能,还是只有手动的方式?


当前回答

对于 Xcode10

复制Main.storyboard 然后将文件重新命名为Main_iPad。storyboard和main_iphone。storyboard 在.plist中设置适当的名称

4.只需选择适当的.storyboard进行配置

其他回答

1 -创建“MainStoryboard_iPad.storyboard”;

2 -右键单击“MainStoryboard_iPhone.”故事板”和“打开作为->源代码”。所有复印件;

3-右键单击“MainStoryboard_iPad”。故事板”和“打开作为->源代码”。粘贴了一切。现在搜索和改变:

targetRuntime = " iOS。CocoaTouch" to targetRuntime="iOS.CocoaTouch.iPad" type = " com.apple.InterfaceBuilder3.CocoaTouch.Storyboard。" to type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.iPad.XIB"

4 -保存。现在重新打开,但是使用接口构建器。你只需要重新安排。

此方法也可用于.xib文件

这对我不太管用。我做了一些不同的事情。

为iPad版本创建一个新的故事板文件 在textwrangler(文本编辑器)中打开新文件和我想复制的文件 在这些xml标记之间将xml文本从旧文件复制到新文件 第一个标签<scenes> <!——内容视图控制器——> 粘贴在这里 结束标签</class> </classes> .结束标签

这对我很管用。我得到了一个新的布局,所有的插座都连接在一起,这为我节省了几个小时。

这是另一种方式,但我能够做一个全选&复制在我的iPad故事板(~35个场景),并粘贴到我的iPhone故事板。场景大小自动调整。我只看到了两个问题,我必须替换UISplitViewController(因为它只是iPad),默认背景变成透明而不是灰色(仍在正确地修复这个问题,无需手动设置所有背景)。

编辑:在属性检查器中UITableView的默认背景似乎很奇怪。对于分组的表视图,我必须手动设置背景为“组表视图背景色”,对于非分组的表视图,我必须手动设置背景为“白色”。然后它被显示为“Default”(我假设它匹配了一个硬编码的值)。实际上,更简单的是,从“分组”切换到“静态”,然后再切换回来似乎会重置默认颜色。

最简单和最可靠的方法是从你的iPad故事板复制粘贴。

创建一个新的故事板,并将其命名为MainStoryboard_ipad。 通过在你的项目的目标属性的Summary页上将Devices属性设置为Universal,使你的应用程序成为Universal应用程序。 打开你的iPhone故事板,选择全部并复制 打开你的iPad故事板并粘贴。

你将不得不调整大小,但这可能比重新创建整个故事板更快。

我只是改变了(另外从@tharkay的答案):

 <device id="ipad9_7" orientation="landscape">

效果很好!

我在XCode 8.3.3中使用了这个