1.获取导航条
UINavigationBar *navBar =self.navigationController.navigationBar;
2.设置导航条样式(使用系统自带样式)
[navBar setBarStyle:UIBarStyleDefault];
分别有如下几种样式:
typedef NS_ENUM(NSInteger, UIBarStyle) {
UIBarStyleDefault =0,
UIBarStyleBlack = 1,
UIBarStyleBlackOpaque = 1,// Deprecated. UseUIBarStyleBlack
UIBarStyleBlackTranslucent = 2, //Deprecated. Use UIBarStyleBlack and set the translucent property toYES
};
从字面我们就能了解这4种样式的大概意思:
分别为:
UIBarStyleDefault:默认样式
UIBarStyleBlack:黑色
UIBarStyleBlackTranslucent:黑色透明
注意:
我们发现,在后面两个标记为Deprecated,我们知道使用后面两种将不被提倡。
从枚举中,我们也可以看出:UIBarStyleBlack=1和UIBarStyleBlackOpaque=1表示为一样的。
后来,发现增加了一个方法:[navBarsetTranslucent:YES];用来指示是否透明。
所以,我们使用UIBarStyleDefault和UIBarStyleBlack来定义UINavigationBar样式,并且用setTranslucent:方法来设置透明与否。
3.自定义导航条颜色
如果,仅仅使用这4种(2种样式是否透明),难免太逊了,必须能自定义UINavigationBar*样式啊。
if ([navBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]){
//UIBarMetricsLandscapePhone
[navBarsetBackgroundImage:[UIImageimageNamed:@"图片名称"] forBarMetrics:UIBarMetricsDefault];
}
**setBackgroundImage方法的第二个参数,需要解释一下:**
UIBarMetricsDefault:用竖着(拿手机)时**UINavigationBar**的标准的尺寸来显示**UINavigationBar**
UIBarMetricsLandscapePhone:用横着时**UINavigationBar**的标准尺寸来显示**UINavigationBar**