比如说,我制作了一个类似于UINavigationController
的自定义容器视图控制器,但顶部有2个导航栏。
然后,在子视图控制器中我使用autolayout,我当然希望内容从第二个导航栏下面开始。
要自动实现此目的,我需要将顶部布局指南设置为两个导航栏组合的高度。
我假设我们可以覆盖topLayoutGuide
- 属性,但无论我做什么,topLayoutGuide
函数都不会在我的自定义容器视图控制器或子视图控制器中调用。
所以这意味着topLayoutGuide
基本上是一个毫无价值的财产,仅适用于Apple自己的容器视图控制器?
请告诉我,我错了!
答案 0 :(得分:6)
通过阅读相关文档,topLayoutGuide
属性为(readonly)
,其长度属性也为(readonly)
。除此之外,它还指出:
容器视图控制器中的视图控制器未设置此项 财产的价值。相反,容器视图控制器约束 表示的值:
- 导航栏的底部,如果导航栏可见
- 状态栏的底部,如果只显示状态栏
- 如果状态栏和导航栏都不可见,则视图控制器视图的上边缘
这三个场景暗示我可能无法定制,尽管我很想被证明是错误的。似乎是此功能的一个很好的用例。