我正在编写一个自定义UIViewController,它将具有类似tabbar的功能(包含一个用于在子视图之间切换的控件)。添加子控制器时,我还将子视图添加到容器的视图中,并且必须调整其大小以使其不会在控件后面绘制。
阅读文档,似乎设置topLayoutGuide
属性是调整这些子控制器视图大小的理想方法,但它是一个只读属性,似乎没有人找到一个好方法来覆盖它。如果我不能用它来定义我的控制器视图的上限,那么这个属性的目的是什么?
答案 0 :(得分:0)
topLayoutGuide
用于在navigationBar
可见时调整ViewControllers的高度,就像bottomLayoutGuide
的{{1}}一样。
您可以使用layoutGuides和LayoutConstraints自动调整视图。
答案 1 :(得分:0)
topLayoutGuide
(和bottomLayoutGuide
)类似于视图的NSLayoutConstraint
项。通常用于将视图约束到视图控制器(或底部)的顶部。计算如下
如果viewController
未嵌入navigationController
,则topLayoutGuide
的{{1}}开始于statusBar
的底部,如果可见,则viewController
位于viewController
的底部{1}}
如果navigationController
中嵌入了topLayoutGuide
,statusBar
会在data.frame
底部开始,如果不透明,则计算为数字1。
如需进一步阅读,请参阅length property of UILayoutSupport