UIViewController.topLayoutGuide的目的是什么?

时间:2017-05-26 16:41:24

标签: swift uiviewcontroller autolayout

我正在编写一个自定义UIViewController,它将具有类似tabbar的功能(包含一个用于在子视图之间切换的控件)。添加子控制器时,我还将子视图添加到容器的视图中,并且必须调整其大小以使其不会在控件后面绘制。

阅读文档,似乎设置topLayoutGuide属性是调整这些子控制器视图大小的理想方法,但它是一个只读属性,似乎没有人找到一个好方法来覆盖它。如果我不能用它来定义我的控制器视图的上限,那么这个属性的目的是什么?

2 个答案:

答案 0 :(得分:0)

topLayoutGuide用于在navigationBar可见时调整ViewControllers的高度,就像bottomLayoutGuide的{​​{1}}一样。

您可以使用layoutGuides和LayoutConstraints自动调​​整视图。

答案 1 :(得分:0)

topLayoutGuide(和bottomLayoutGuide)类似于视图的NSLayoutConstraint项。通常用于将视图约束到视图控制器(或底部)的顶部。计算如下

  1. 如果viewController未嵌入navigationController,则topLayoutGuide的{​​{1}}开始于statusBar的底部,如果可见,则viewController位于viewController的底部{1}}

  2. 如果navigationController中嵌入了topLayoutGuidestatusBar会在data.frame底部开始,如果不透明,则计算为数字1。

  3. 如需进一步阅读,请参阅length property of UILayoutSupport