2018-08-20 iOS导航栏的那些事

UINavigationController 在iOS开发体系里,是一个容器类的控制器,同时管理控制器的堆栈。继承自UIViewController。

1.内容页面的原点
在iOS7之前,导航控制器里的控制器页面,从导航栏的底部开始布局。页面原点在屏幕左边,导航栏底部(0,stautsHeight+naviHeight)。
iOS7之后,页面原点移至屏幕原点(0,0),可见区域为整个屏幕,但是页面内容会被状态栏和导航栏遮挡。


2018-08-20 iOS导航栏的那些事_第1张图片
image.png

只有当设置导航栏背景之后,原点才会移回至导航栏底部。


2018-08-20 iOS导航栏的那些事_第2张图片
image.png

但是,若设置导航栏隐藏,原点依旧移至屏幕原点(0,0)


2018-08-20 iOS导航栏的那些事_第3张图片
image.png

2.内容页面的高度

2018-08-20 iOS导航栏的那些事_第4张图片
image.png

本图来源: https://www.jianshu.com/p/20681c58d2be

iPhone8 (origin = (x = 0, y = 0), size = (width = 375, height = 667)) 可见,虽然内容页的原点,移至导航栏底部,但是内容页的尺寸,并没有改变,所以我们在添加subview的时候,需要将高度减去状态栏+导航栏高度。

3.导航栏的结构
4.导航栏个性化定制

你可能感兴趣的:(2018-08-20 iOS导航栏的那些事)