Xcode Storyboard中“推断”和“自由形式”有什么区别?

时间:2015-09-28 09:34:00

标签: ios xcode storyboard

我有一个自定义视图,需要在所有iPhone设备上显示(4,4S,5,5S,6和6 Plus)。在创建自定义视图XIB时,我已将其称为“推断”,但它没有为iPhone 6和iPhone 6 Plus设备调整大小。我无法弄清楚这个问题。我对“推断”和“自由形式”之间的实际差异感到困惑。有人可以解释一下这些差异吗?

2 个答案:

答案 0 :(得分:11)

推断根据其父级场景调整场景的大小。例如,如果您有一个大小与iPad相同的场景,然后在故事板中添加一个新场景并为其创建一个segue,它将自动调整大小到与iPad场景相同的大小(segue源自的位置) 。

自由格式会忽略上述规则,并且您可以在右侧的实用程序窗格中根据需要调整其大小。

但这两者都与视图在实际设备上的显示和大小无关。为此,您需要使用auto layout和约束。或springs and struts。如果需要更多的灵活性,有些人甚至可以在代码中执

答案 1 :(得分:2)

“推断”是故事板的默认设置,它表示场景将在导航控制器内部显示导航栏,在标签栏控制器内部显示标签栏,依此类推。如果您愿意,可以覆盖这些设置,但请记住,它们仅用于帮助您设计屏幕。模拟度量标准在运行时不使用,它们只是一个视觉设计辅助工具,可以显示屏幕最终的样子。

“FreeForm”通常您在将视图控制器作为子节点添加到另一个视图控制器时以编程方式使用freeform属性,并且您确实希望具有该固定大小。如果您按下视图控制器或将其作为模态视图控制器呈现(并且您使用模态演示样式)然后不需要使用自由形式。另外使用自由形式属性是当使用现有的演示样式呈现为模态视图控制器时预览视图控制器的实际大小。