Xcode故事板:为什么iPad故事板会显示iPhone大小的视图?

时间:2012-03-26 17:51:18

标签: ios xcode interface-builder storyboard

我有一个使用故事板的通用应用程序。有一个iPhone故事板和一个iPad故事板。但是,在界面构建器中,iPad故事板的视图控制器仍然适合iPhone。如何让iPad故事板显示iPad大小的视图控制器?

我意识到界面构建器中的视图控制器显示只是设计时间的眼睛,但拥有iPhone大小的VC使得很难正确布局UI。

8 个答案:

答案 0 :(得分:56)

在对故事板源代码进行一些挖掘之后,事实证明iPad故事板是从iPhone故事板中复制的。那么,真正的问题是如何将iPhone故事板转换为iPad故事板?

答案非常简单。我跑过this SO answer - 将iPhone故事板转换为iPad故事板,执行以下操作

  1. 从Xcode中,右键单击故事板并选择Open As - > 源代码

  2. 搜索targetRuntime="iOS.CocoaTouch"并将其更改为targetRuntime="iOS.CocoaTouch.iPad"

  3. 再次右键单击故事板并选择Open As - > iOS故事板

  4. 故事板现在将以正确的大小显示所有视图。

答案 1 :(得分:7)

首次创建故事板时,请选择故事板所针对的设备系列(iPhone或iPad)。一旦故事板已经创建,我不知道如何更改设备系列。

但是,为了解决您的问题,我建议如下:

转到:新建 - >>创建新的故事板档案 - >用户界面 - >故事板(选择选项时,请务必选择设备系列= iPad。)

转到旧故事板,按Command-A,Command-C选择并复制所有内容。然后按Command-V转到并粘贴所有内容。您的视图控制器现在将是iPad大小。

然后,您可以删除旧故事板并将新故事板重命名为旧名称。

答案 2 :(得分:3)

这个答案不是解决方案,但有助于了解发生此类事情的原因之一。

尝试禁用时会出现问题:

  

"使用自动布局"

取消选中后,会出现弹出窗口。有选择:

  

"保持尺寸等级数据:iPhone" ,默认选择 iPhone (无论您创建的是哪个iPad或iPhone项目)。

如果你不提及,你的故事板将自动转换为 iPhone尺寸

不要忘记选择正确的设备。

答案 3 :(得分:0)

我使用建议的答案将iPhone故事板转换为iPad故事板,这对我的大多数观点都有用。但是,我意识到其中一个视图仍然是iPhone故事板大小。原因是因为我锁定了一个背景图像的所有属性(因为我不想意外移动它)。移除锁定将视图重新调整为iPad大小。这可能有助于有人坚持这一点。

答案 4 :(得分:0)

确保在Target>中设置正确的Storyboard一般。这种东西让我头疼了3个小时才意识到我为iPhone设置了与我的iPad故事板相同的故事板。

答案 5 :(得分:0)

在Xcode 6.2中更改targetRunTime对我来说不起作用,但是第二种手动复制视图的方法就可以了。

答案 6 :(得分:0)

在我的通用应用程序中,我将SpriteKit用于主viewcontroller。 SKScene.scaleMode设置为aspectFill。在iPad模拟器中运行时,该应用程序启动了iPhone模式。解决方法是设置scaleMode = .resizeFill

答案 7 :(得分:0)

对我来说,我发现将视图控制器的显示方式更改为“全屏”而不是“自动”会更容易,我使用的是Xcode 12.1

enter image description here

A