2017-05-26 64 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