使用 objective c 更改状态栏的颜色

Change color of statusBar using objective c

我有一个标记为 navigationManager 的文件,它处理我的每个视图的 statusBar 和 navigationBar。实际的 navigationBar 工作正常,但 statusBar 出于某种原因只是全白。这是状态栏的导航管理器中的代码...

-(UINavigationBar *)getStatusBarWithX:(float)fX
                                Y:(float)fY
                            width:(float)fW
                           height:(float)fH {

UINavigationBar *barReturn = [[UINavigationBar alloc] initWithFrame:CGRectMake(fX, fY, fW, fH)];
barReturn.barStyle = UIStatusBarStyleLightContent;
[barReturn setBackgroundImage:[UIImage imageNamed:@"deepBlue.png"] forBarMetrics:UIBarMetricsDefault];

return barReturn;

}

然后在主视图控制器上,我像这样从导航管理器中提取代码...

float statusBarHeight = [UIApplication sharedApplication].statusBarFrame.size.height;
UINavigationBar *statusBar = [self.navigationManager getStatusBarWithX:0
                                                                     Y:0
                                                                 width:self.view.frame.size.width
                                                                height:statusBarHeight];

然后我只需将其添加到视图中

[self.view addSubview:statusBar];

然而,状态栏在导航栏上方只显示白色。我正在使用 objective c 并且不确定为什么现在要这样做。它最近才开始发生。

我想通了。我必须自己更改颜色而不是设置背景图片

而不是...

[barReturn setBackgroundImage:[UIImage imageNamed:@"deepBlue.png"] forBarMetrics:UIBarMetricsDefault];

我做了以下...

barReturn.backgroundColor = [UIColor colorWithRed:48.0/255.0 green:65.0/255.0 blue:151.0/255.0 alpha:1.0];