对于Swift:
第一步:在Info.plist中设置UIViewControllerBasedStatusBarAppearance 为NO
第二步:在viewDidLoad中加一句(也可以在AppDelegate.swift里添加)
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent;
这样就可以把默认的黑色改为白色。
对于Object-C:
第一步:在Info.plist中设置UIViewControllerBasedStatusBarAppearance 为NO
第二步:在AppDelegate.m里添加:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
如果你想将背景图片延伸至状态栏,可以参考以下方法:
源地址:http://my.oschina.net/shede333/blog/304560
背景部分,简单来说,就是背景色;改变方法有两种:
系统提供的方法
navigationBar的setBarTintColor接口,用此接口可改变statusBar的背景色
注意:一旦你设置了navigationBar的- (void)setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics接口,那么上面的setBarTintColor接口就不能改变statusBar的背景色,statusBar的背景色就会变成纯黑色。
另辟蹊径
创建一个UIView,
设置该UIView的frame.size 和statusBar大小一样,
设置该UIView的frame.origin 为{0,-20},
设置该UIView的背景色为你希望的statusBar的颜色,
在navigationBar上addSubView该UIView即可。
1 self.navigationController.navigationBar.backgroundColor = [UIColor clearColor]; 2 self.navigationController.navigationBar.barTintColor = [UIColor clearColor]; 3 [self.navigationController.navigationBar setBackgroundImage:[Helper scaleToSize:[ResourceHelper loadImageByTheme:@"me_navbar_background"] size: CGSizeMake(320, navigationBarHeight) ] forBarMetrics:UIBarMetricsDefault];