Xcode Storyboard中的“推断”和“自由forms”之间有什么区别?

我有一个自定义视图,需要在所有iPhone设备(4,4S,5,5S,6和6 Plus)上显示。 在创build自定义视图XIB时,我已经提到它是“推断”,但它不是为iPhone 6和iPhone 6 Plus设备resize。 我无法弄清楚这个问题。 我对“推断”和“自由forms”之间的实际差异感到困惑。 有人能解释一下这个区别吗?

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

自由格式将忽略上述规则,并且您可以在右侧的实用程序窗格中按照您认为合适的尺寸进行调整。

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

“推断”是故事板的默认设置,这意味着场景将在导航控制器内部显示导航栏,在标签栏控制器内部显示导航栏等等。 如果您愿意,您可以覆盖这些设置,但请记住,这里只是为了帮助您devise屏幕。 模拟指标不会在运行时使用,它们只是一个视觉devise辅助工具,显示您的屏幕最终会变成什么样子。

“FreeForm”通常,当你将视图控制器作为子项添加到另一个视图控制器时,你可以使用自由forms的属性,并且你真的想拥有固定的大小。如果你推视图控制器或者把它作为模态视图控制器使用模态表示样式),那么就没有必要使用自由格式。另一种使用自由格式属性的方法是预览视图控制器的实际大小,当使用现有的演示样式作为模式视图控制器显示时。