容器视图控制器中的自定义topLayoutGuide长度

时间:2014-01-30 09:01:20

标签: ios uiviewcontroller ios7 autolayout

比如说,我制作了一个类似于UINavigationController的自定义容器视图控制器,但顶部有2个导航栏。

然后,在子视图控制器中我使用autolayout,我当然希望内容从第二个导航栏下面开始。

要自动实现此目的,我需要将顶部布局指南设置为两个导航栏组合的高度。

我假设我们可以覆盖topLayoutGuide - 属性,但无论我做什么,topLayoutGuide函数都不会在我的自定义容器视图控制器或子视图控制器中调用。

所以这意味着topLayoutGuide基本上是一个毫无价值的财产,仅适用于Apple自己的容器视图控制器?

请告诉我,我错了!

1 个答案:

答案 0 :(得分:6)

通过阅读相关文档,topLayoutGuide属性为(readonly),其长度属性也为(readonly)。除此之外,它还指出:

  

容器视图控制器中的视图控制器未设置此项   财产的价值。相反,容器视图控制器约束   表示的值:

     
      
  • 导航栏的底部,如果导航栏可见
  •   
  • 状态栏的底部,如果只显示状态栏
  •   
  • 如果状态栏和导航栏都不可见,则视图控制器视图的上边缘
  •   

这三个场景暗示我可能无法定制,尽管我很想被证明是错误的。似乎是此功能的一个很好的用例。