引
现如今很多App的一些模块,尤其是个人中心模块,界面设计已经习惯于不保留导航栏,而是直接将界面背景覆盖到状态栏,比如QQ的个人信息界面:
没有传统的导航栏之后会好看很多,但是回到或者去往别的页面时,往往又需要重新显示导航栏,关于这样一种设计苹果并没有给出专门的设置,需要我们自己来做,但在尝试了多种方法之后其实也没有很好的方法,QQ其实做的挺好的,如果你现在动手去尝试一下,会发现它的有无导航栏转换之间有一个渐变的毛玻璃效果,很棒,也比较顺滑,要实现这个,应该要用到Category。
本文只讲最简单的实现方式,在单纯的UINavigationController下是表现ok的,但是如果同时还涉及到UITabbarController,就会有一些瑕疵,下面是要实现的效果,可以观察一下瑕疵在哪:
实现:
要实现这个简单的有无导航栏过渡其实很简单,直接在 viewWillAppear 和 viewWillDisappear 方法中对导航栏进行显示和隐藏就可以了,为了到达比较平滑的效果,建议对是否动画的参数选择YES,否则显示界面后就会瞬间出现导航栏,而达不到平滑的效果。
代码如下: