2017-05-26 92 views
1

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

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

回答

0

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

您可以使用LayoutConstraints的layoutGuides来自动调整视图。

0

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

  1. viewController未嵌入一个navigationControllertopLayoutGuide开始上的statusBar如果可见的底部,否则上的viewController

  2. 顶部边缘当viewController被嵌入在navigationControllertopLayoutGuide开始上的statusBar如果不透明底部,否则被计算为在编号1

欲了解更多信息,请参阅length property of UILayoutSupport