Xcode故事板:为什么iPad的故事板显示iPhone大小的视图?
在Xcode storyboard中,为什么iPad的storyboard显示的是iPhone大小的视图?
这个问题出现的原因是,当你尝试禁用"Use Auto Layout"选项时,弹出窗口会出现。在弹出窗口中,有一个选项是"Keep size class data for: iPhone",默认情况下选择的是iPhone(无论你创建的是iPad还是iPhone项目)。如果你不对此进行注意,你的storyboard会自动转换为iPhone大小的视图。所以,在选择设备时不要忘记选择正确的设备。
下面是一位开发者的解决方法:
"这个解决方法对我有效。"
以上是关于为什么iPad的storyboard显示的是iPhone大小的视图的原因以及解决方法。
当你第一次创建一个故事板时,你需要选择一个目标设备(iPhone或iPad)。我不知道在故事板创建之后是否可以更改设备类型。
然而,为了解决你的问题,我建议你按照以下步骤操作:
1.创建一个新的故事板:新建 -> 文件 -> 用户界面 -> 故事板(在选择选项时确保选择设备类型为iPad)。
2.打开旧的故事板,通过按下Command-A,Command-C来选择和复制所有内容。然后打开新的故事板,按下Command-V将所有内容粘贴进去。这样你的视图控制器将会是iPad大小的。
3.最后,你可以删除旧的故事板,并将新的故事板重命名为旧的名字。
奇怪的是,你居然可以复制/粘贴整个故事板。
在我使用的Xcode版本6.2中,我没有看到设备类型选择的选项。
Xcode storyboard: 为什么iPad的故事板显示iPhone大小的视图?
在查看故事板源代码后,发现iPad的故事板是从iPhone的故事板复制而来的。因此,问题实际上是如何将iPhone的故事板转换为iPad的故事板?
答案出人意料地简单。我找到了这个stackoverflow回答:要将iPhone的故事板转换为iPad的故事板,请按照以下步骤进行操作:
1. 在Xcode中,右键点击故事板,选择 "Open As" -> "Source code"
2. 搜索 targetRuntime="iOS.CocoaTouch"
并将其更改为 targetRuntime="iOS.CocoaTouch.iPad"
3. 再次右键点击故事板,选择 "Open As" -> "iOS Storyboard"
然后,故事板中的所有视图将以正确的尺寸显示。
非常感谢,这让我抓狂了。
谢谢Michael!请注意,这也可以在XIB上完成。XIB的XML文件(文档标签)的根元素也有对"targetRuntime"的引用。按照Michael的建议进行操作。
我这样做了,现在只显示iPad预览(iPhone消失了)。有什么办法吗?
你太棒了!谢谢你的回答!
如果你已经将设备更改为iPad,但仍然找不到iPhone,可以在文件属性中打开 "Use Size Classes" 选项,以查看包括iPhone和iPad尺寸在内的所有选项。
令人难以置信,居然还要在2017年进行这样的操作!
在2019年和Xcode 11中,这仍然有效...非常感谢!
还要注意这行代码:<device id="ipad12_9" orientation="landscape" layout="fullscreen" appearance="light"/>
,检查一下其中的id="ipad12_9"部分。(适用于Xcode 13.3.1)