iOS导航栏和状态栏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS导航栏和状态栏相关的知识,希望对你有一定的参考价值。

参考技术A ios 7 以后苹果开始默认对 ViewController 采用全屏布局,全屏布局的意思就是 ViewController 的 layout 是填满整个屏幕的,这在 ViewController 界面中有 StatusBar(20) 、 NavigationBar(44) 、 TabBar(49) 、 ToolBar(44) 的时候与以往的布局方式有着明显的差异。全屏布局的情况下, ViewController 的 layout(self.view) 会被盖在这些 Bar 下面。

默认值是 UIRectEdgeAll,即 View Controller 的布局是全屏填满。
在有 NavigationBar 、 TabBar 、 TooBar 等系统 Bar 的情况下,该属性设置为 UIRectEdgeAll 时, ViewController 的页面会有一部分会被这些 Bar 盖住部分;而当该属性设为 UIRectEdgeNone 的时候, ViewController 的页面布局会限制在这些 Bar 之间。

IOS的界面分为状态栏和导航栏,状态栏是指显示电池、时间的最顶部的一个窄条,高度为20个点;而导航栏是紧接着状态栏的44个点高度的横条,一般用于显示app标题,返回按钮等操作按钮。
在ios7之前,状态栏和导航栏是分开的,而从ios7开始状态栏和导航栏交织在一起了,状态栏变为透明,导航栏的高度变为44+20=64:

我们不能随意的对状态栏的字体和颜色任意控制。只能设置两种样式。 UIStatusBarStyleDefault 和 UIStatusBarStyleLightContent 。

为了保险起见,在view加载的某个阶段比如 viewWillAppear 中执行

iOS 系统根据导航栏和状态栏自动修改布局

问题

条件:1.有一个全屏大小的带导航的controller

   2.隐藏导航栏,最顶上还会留出状态栏的位置,而不是全屏显示

解决方法

self.automaticallyAdjustsScrollViewInsets = NO;

 

以上是关于iOS导航栏和状态栏的主要内容,如果未能解决你的问题,请参考以下文章

iOS 获取状态栏、导航栏、tabBar高度

为啥ios中的状态栏和导航栏背景颜色不同

iOS 8 -- 对导航栏和状态栏应用模糊

iOS获取状态栏和导航栏尺寸(宽度和高度)

iOS下状态栏和导航栏的控制问题

iOS 状态栏和导航栏颜色相同