Autolayout的问题:自动添加Constraints导致出错。这次要说的问题和上次都和一个东西有关——Top Layout Guide。
Top Layout Guide用于自动布局的辅助,在Storyboard中可以看到Top Layout Guide作为ViewController的属性存在,也就是topLayoutGuide,官方文档对这个属性的Discussion是:
topLayoutGuide属性表示不希望被透明的状态栏或导航栏遮挡的内容范围的最高位置。这个属性的值是它的length属性的值(topLayoutGuide.length),这个值可能由当前的ViewController或这个ViewController所属的NavigationController或TabBarController决定,有如下情况:
- 一个独立的ViewController,不包含于任何其他的ViewController。如果状态栏可见,topLayoutGuide表示状态栏的底部,否则表示这个ViewController的上边缘。
- 包含于其他ViewController的ViewController不对这个属性起决定作用,而是由容器ViewController决定这个属性的含义:
- 如果导航栏(Navigation Bar)可见,topLayoutGuide表示导航栏的底部。
- 如果状态栏可见,topLayoutGuide表示状态栏的底部。
- 如果都不可见,表示ViewController的上边缘。
这部分还比较好理解,总之是屏幕上方任何遮挡内容的栏的最底部。
这个是距离controller的时候
如果使用 addChildViewController 是不可以的 因为 Top Layout Guide相对他的controller 你加的时候就没有这个controller了 然后布局就会各种有问题 我当时就很懵逼
使用 addChildViewController 添加view 为什么视图的布局会变化
网友评论