iOS-自定义导航栏
前言 苹果自IOS7之后,navigationBar增加了barTintColor属性,使得我们更加方便的设置导航栏的背景色,但是导航栏是一个比较复杂的系统控件,朋友们经常遇到设置透明不成功的问题,由于UINavigationBar是一个复合控件,因此无法像其他控件一样设置backgroundColor和alpha属性,控制导航栏的背景色和透明度,最关键的是系统导航控制器的导航栏是多个ViewController共有的,导致不同控制器导航栏不同背景色或者不同样式不好控制,正因为如此,在开发中需要自定义导航栏。 (一)导航控制器自带导航栏 (1)所有的视图控制器共用导航栏,因此存在的问题就是在当前控制器设置的导航栏属性会影响到之后的控制器,切换过程中需要不断的设置导航栏控件的属性; (2)push控制器,导航栏会渐变; 但是,你会发现市场上很多应用导航栏在切换的过程中并没有渐变,背景色也是各种各样,因此唯有自定义导航栏能比较方便的进行相关操作,后面我会做相应的阐述。 (二)自定义导航栏 (1)通过UIView构建类似导航栏结构的视图,包括左右按钮以及titleView子视图; (2)隐藏系统导航控制器的navigationBar,然后在ViewController控制器中创建UINavigationBar控件