所以我的问题是我何时以及为什么要更改这个“Freeform”属性? 每当我需要制作一些叠加时,我只是让主视图“透明”并在我的内容上创建另一个视图,然后我呈现它我作为一个容器。 我认为没有必要,而且我在Apple文档中找不到任何关于它的内容。
谢谢。
答案 0 :(得分:3)
此属性仅适用于模拟不同的尺寸
ViewControllers并不总是必须是全屏容器,例如View Controller containment,或者新的iOS 7视图控制器transitions可能会导致视图控制器的大小覆盖屏幕的某个部分区域。
您可以使用“自由形式”模式更改界面构建器中的大小,这样您就可以模拟最终大小。
答案 1 :(得分:0)
你并没有走上正轨。如果使用Freeform
作为视图控制器的大小,则可以指定所需的控制器大小。
使用控制器,如何设置springs & struts
或layout constraints
也非常重要。如果您设置弹簧或约束以将控制器的视图拉伸到"匹配"父级大小然后视图将被拉伸,如果不是它将保持您提到的大小但不是在所有情况下。例如,如果您以模态方式呈现视图控制器并在IB中指定不同的explicit size
,则视图将具有此大小。
通常,当您将视图控制器作为子项添加到另一个视图控制器时,您会使用freeform
属性,并且您确实希望具有该固定大小。
如果按下视图控制器或将其显示为模态视图控制器(并使用模态演示样式),则无需使用freeform
。
freeform
属性的另一个用途是在使用现有的演示样式呈现为模态视图控制器时预览视图控制器的实际大小。
我之前看到的关于视图控制器视图大小的另一个错误实现是检查viewDidLoad
中的大小。请务必检查viewWillAppear|| viewDidAppear
中的尺寸。
答案 2 :(得分:0)
这在Q UIViewController Freeform size issue中得到了解答:取消选中"从NIB调整视图"在View Controller的属性检查器中,您的自由形式视图控制器视图的确会按照您在故事板中设计的大小进行解码。