无标题文章

多视图应用程序中,我们常常使用到自定义UINavigationBar来完成导航条的设置。

1.获取导航条

UINavigationBar*navBar =self.navigationController.navigationBar;

2.设置导航条样式(使用系统自带样式)

[navBarsetBarStyle:UIBarStyleDefault];

分别有如下几种样式:

typedefNS_ENUM(NSInteger, UIBarStyle) {

UIBarStyleDefault=0,

UIBarStyleBlack=1,

UIBarStyleBlackOpaque=1,// Deprecated. Use UIBarStyleBlack

UIBarStyleBlackTranslucent =2,// Deprecated. Use UIBarStyleBlack and set the translucent property to YES

};

从字面我们就能了解这4种样式的大概意思:

分别为:

UIBarStyleDefault:默认样式

UIBarStyleBlack:黑色

UIBarStyleBlackOpaque:黑色不透明

UIBarStyleBlackTranslucent:黑色透明

注意:

我们发现,在后面两个标记为Deprecated,我们知道使用后面两种将不被提倡。

从枚举中,我们也可以看出:UIBarStyleBlack=1和UIBarStyleBlackOpaque=1表示为一样的。

后来,发现增加了一个方法:[navBarsetTranslucent:YES];用来指示是否透明。

所以,我们使用UIBarStyleDefault和UIBarStyleBlack来定义UINavigationBar样式,并且用setTranslucent:方法来设置透明与否。

3.自定义导航条颜色

如果,仅仅使用这4种(2种样式*是否透明),难免太逊了,必须能自定义UINavigationBar样式啊。

if([navBarrespondsToSelector:@selector(setBackgroundImage:forBarMetrics:)]){

// UIBarMetricsLandscapePhone

[navBarsetBackgroundImage:[UIImageimageNamed:@"图片名称"]forBarMetrics:UIBarMetricsDefault];

}

setBackgroundImage方法的第二个参数,需要解释一下:

UIBarMetricsDefault:用竖着(拿手机)时UINavigationBar的标准的尺寸来显示UINavigationBar

UIBarMetricsLandscapePhone:用横着时UINavigationBar的标准尺寸来显示UINavigationBar

希望对您有所帮助!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在APPdelegate中添加这段代码,即可自定义navigationbar的返回按钮 UIImage *back...
    凡凡饭饭阅读 140评论 0 0
  • vue插件介绍 2. 插件分类 主要注册与绑定机制如下: export default{install(Vue...
    Osmond_wang阅读 340评论 0 1
  • spring官方文档:http://docs.spring.io/spring/docs/current/spri...
    牛马风情阅读 1,768评论 0 3
  • 今天真的好累好累,这两天熬夜不停熬夜,昨晚熬到了两点多,今天早上闹钟响的时候有想砸了手机的冲动,但是还是逼着自己起...
    普拉哒阅读 140评论 0 0
  • 春节越来越近了,有一天阳光很好,走在宽敞的马路上,突然觉得好像北京。 蔚蓝的天、高耸的写字楼、折射出炫目光线的玻璃...
    青年西米阅读 532评论 0 5