1.statusBar的style默认状态下,电池信号之类的为黑色,背景为当前控制器的view的背景颜色。
UIStatusBarStyleLightContent, 状态栏内容为白色。
UIStatusBarStyleDefault,状态栏内容为黑色。
2.控制statusBar显示的风格,如果在NavigationController统一设置风格,那么就在NavigationController中写此方法。
- (UIStatusBarStyle)preferredStatusBarStyle{returnUIStatusBarStyleLightContent;}
3.如果要在有navigationController导航的情况下,要在viewController中拿到并修改statusBar的颜色的话
UIView*statusBar = [[[UIApplicationsharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];NSLog(@"statusBar.backgroundColor--->%@",statusBar.backgroundColor);if([statusBar respondsToSelector:@selector(setBackgroundColor:)]) { statusBar.backgroundColor = color; }
4.设置 navigationBar 导航条leftItem和rightItem字体颜色,和导航条颜色
//navigationItem字体的颜色[self.navigationController.navigationBar setTintColor:[UIColorblackColor]];//导航栏颜色[self.navigationController.navigationBar setBarTintColor:[UIColorwhiteColor]];
5.设置navigationItem
UIBarButtonItem*item = [[UIBarButtonItemalloc] initWithTitle:@""style:UIBarButtonItemStyleDonetarget:nilaction:nil];self.navigationItem.backBarButtonItem = item;
6.在controller中设置 statusBar 和navigationBar 透明
[[[self.navigationController.navigationBar subviews] objectAtIndex:0] setAlpha:1];
self.view.backgroundColor = [UIColor ClearnColor];通常情况给self.view的背景色设置成图片,将导航条设为透明,就完成整个状态栏和导航条的透明了。
7.设置导航条标题的颜色 (AttributeString)
self.navigationController.navigationBar.titleTextAttributes = @{UITextAttributeTextColor: [UIColor whiteColor]};