UINavigationController 在iOS开发体系里,是一个容器类的控制器,同时管理控制器的堆栈。继承自UIViewController。
1.内容页面的原点
在iOS7之前,导航控制器里的控制器页面,从导航栏的底部开始布局。页面原点在屏幕左边,导航栏底部(0,stautsHeight+naviHeight)。
iOS7之后,页面原点移至屏幕原点(0,0),可见区域为整个屏幕,但是页面内容会被状态栏和导航栏遮挡。
image.png
只有当设置导航栏背景之后,原点才会移回至导航栏底部。
image.png
但是,若设置导航栏隐藏,原点依旧移至屏幕原点(0,0)
image.png
2.内容页面的高度
image.png
本图来源:https://www.jianshu.com/p/20681c58d2be
iPhone8 (origin = (x = 0, y = 0), size = (width = 375, height = 667)) 可见,虽然内容页的原点,移至导航栏底部,但是内容页的尺寸,并没有改变,所以我们在添加subview的时候,需要将高度减去状态栏+导航栏高度。
3.导航栏的结构
4.导航栏个性化定制










网友评论