我有一个标记为navigationManager的文件,用于处理每个视图的statusBar和navigationBar。实际的导航栏工作正常,但状态栏由于某些原因完全是白色的。下面是navigationManager中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;
}
然后在主视图控制器上,我从navigationManager中提取代码,像这样…
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];