ios 实现自定义状态栏StatusBar 和 导航栏navigationBar 的状态和颜色

很多app中可以看到不同与导航栏的状态栏的颜色,他妈的真绕嘴.

一.更改状态栏颜色 (StatusBar)

就是比如导航栏是红色的状态栏是绿色的.

要实现这样的效果其实很简单,就是添加一个背景view.

简单的实现过程如下:

1     // 设置导航颜色  可用
2     [self.navigationController.navigationBar setBarTintColor:[UIColor redColor]];
3     //创建一个高20的假状态栏
4     UIView *statusBarView = [[UIView alloc] initWithFrame:CGRectMake(0, -20, self.view.bounds.size.width, 20)];
5     //设置成绿色
6     statusBarView.backgroundColor=[UIColor greenColor];
7     // 添加到 navigationBar 上
8     [self.navigationController.navigationBar addSubview:statusBarView];

二.自定义 StatusBar 和 NavigationBar 的颜色

再说一下实现导航栏的标题的字体和颜色

效果如下:

代码如下:

1     // Attributes 属性
2     NSDictionary  *[email protected]{NSForegroundColorAttributeName:[UIColor whiteColor],NSFontAttributeName:[UIFont systemFontOfSize:30]};
3     // 设置导航栏的字体大小  颜色
4     [self.navigationController.navigationBar setTitleTextAttributes:textAttributes];

三.隐藏 NavigationBar 和 StatusBar

效果如下:

代码如下:

1 //    隐藏NavigationBar(导航栏)
2 //    [self.navigationController setNavigationBarHidden:YES];
3       [self.navigationController setNavigationBarHidden:YES animated:YES];

效果如下:

代码如下:

1 // 隐藏状态栏  重写prefersStatusBarHidden
2 - (BOOL)prefersStatusBarHidden
3 {
4     return YES; // yes 隐藏
5 }

四.状态栏字体颜色 白色

代码如下:

方法一:

1     // 设置 状态栏 字体白色
2     // 默认黑色 UIBarStyleDefault
3     // 白色 UIBarStyleBlack ; UIBarStyleBlackOpaque ;  UIBarStyleBlackTranslucent
4     [self.navigationController.navigationBar setBarStyle:UIBarStyleBlack];
5     //[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

方法二:

1 // 状态栏字体 白色 重写preferredStatusBarStyle 方法
2 - (UIStatusBarStyle)preferredStatusBarStyle
3 {
4     // UIStatusBarStyleLightContent 白色
5     // UIStatusBarStyleDefault      黑色
6     return UIStatusBarStyleLightContent;
7 }

五.设置导航栏的背景图片

效果如下:

代码如下:

1 //设置导航栏的背景图片
2     [self.navigationController.navigationBar setTranslucent:YES]; // 设置navigationBar的透明效果
3     [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"导航栏背景图片"] forBarMetrics:UIBarMetricsDefault];

以上内容参考:

ios开发中UINavigationBar和Status Bar实例应用及隐藏各种bar       //http://www.111cn.net/sj/ios8/90056.htm

IOS 实现自定义的导航栏背景以及自定义颜色的状态栏(支持7.0以及低版本)   //http://www.cnblogs.com/wt616/p/3784717.html

时间: 06-02

ios 实现自定义状态栏StatusBar 和 导航栏navigationBar 的状态和颜色的相关文章

iOS开发项目篇—04添加导航栏的按钮

iOS开发项目篇—04添加导航栏的按钮 一.设置导航栏的按钮 要求实现的效果:             说明:默认状态下和高亮状态下的图片是不一样的. 按钮的图片需要设置默认状态和高亮状态时的显示,系统了提供的下面方法 viewController.navigationItem.leftBarButtonItem=[UIBarButtonItem alloc]initWithImage:<#(UIImage *)#> style:<#(UIBarButtonItemStyle)#>

iOS导航栏NavigationBar的颜色,按钮和标题以及字体颜色

首先,层级关系: leftBarButtonItem.rightBarButtonItem.title都是加在UINavigationItem上的,UINavigationItem再加在NavigationBar上,NavigationBar对应唯一的NavigationController. 1. 设置导航栏NavigationBar的背景颜色: 在appdelegate里创建UINavigationController后 设置 (1.) setBarTintColor : 设置Nagivat

设置导航栏返回按钮的箭头颜色

返回按钮部分默认是蓝色,如有两个controller,A和B,其中A跳往B.在A中有 ViewControllerB *BVc = [[WeChatSearchViewController alloc]init]; [self.navigationController pushViewController:BVc animated:YES]; 那么有两种方式可以修改①可以在B中(不是A)的viewDidLoad或viewWillAppear写 self.navigationController.

Android 修改底部导航栏navigationbar的颜色

Android 修改底部导航栏navigationbar的颜色 getWindow().setNavigationBarColor(Color.BLUE); //写法一 getWindow().setNavigationBarColor(getResources().getColor(R.color.black_12));//写法二

ios开发之自定义默认生成的导航栏 标题 颜色 返回按钮

一 修改导航栏颜色    导航栏在哪个页面代码放在那里面 self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:(21.0/255.0) green:(153.0 / 255.0) blue:(224.0 / 255.0) alpha:1];                                                   //定义导航栏颜色 self.navigationItem.t

[iOS微博项目 - 1.1] - 设置导航栏主题(统一样式)

A.导航栏两侧文字按钮 1.需求: 所有导航栏两侧的文字式按钮统一样式 普通样式:橙色 高亮样式:红色 不可用样式:亮灰 阴影:不使用 字体大小:15 github: https://github.com/hellovoidworld/HVWWeibo 2.实现效果 默认样式: 统一使用样式: 3.思路 在创建item的时候逐个设置:代码超级冗余 抽取创建公共父类:稍好的选择,但是继承了此公共父类的控制器,就不能操作其去继承系统自带的控制器类了,造成很大的隐患.iOS中控制器不建议提取公共父类,

状态栏高度 ~导航栏高度

// 状态栏高度 CGFloat  StatusH=[UIApplication sharedApplication].statusBarFrame.size.height; // 导航栏高度 CGFloat   NavH=self.navigationController.navigationBar.frame.size.height;

使用bootstrap3.0搭建一个具有自定义风格的侧边导航栏

由于工作变动,新的项目组,可能会涉及到更多的类似于后台管理系统这一类的项目,而且开发可能更加偏向于传统型的开发,希望今后能够在新的项目中能够用得上vuejs吧! 接手项目的时候,就是一个后台管理系统,而且采用了Bootstrap进行搭建,页面大致模型也基本搭建成功了.然后看到页面上有一个侧边栏,之前是他们从别的地方找出来的一个侧边栏,给人的感觉总是差那么点意思.所以重构了一下.具体的效果,请移步bootstrap-sidebar . 其实主要就解决了两个问题: 1.与内容等高,最小高度为一屏的高

Android 弹出Dialog时隐藏状态栏和底部导航栏

上代码 dialog.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); dialog.getWindow().getDecorView().setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() { @Override public void onSystemUi