Ios5 更改UINavigationBar外观背景图像时状态栏颜色已更改

Ios5 更改UINavigationBar外观背景图像时状态栏颜色已更改,ios5,uinavigationcontroller,ios6,appearance,tintcolor,Ios5,Uinavigationcontroller,Ios6,Appearance,Tintcolor,我使用这行代码更改导航栏背景: [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"image.png"] forBarMetrics:UIBarMetricsDefault]; 在iOS6中,它可以工作,但在iOS5中,状态栏的背景也会更改,如下图所示: 这是怎么发生的。提前谢谢 还有一件事,我只想更改UINavigationBar的颜色,所以我使用了以下代码: [[UINavigationB

我使用这行代码更改导航栏背景:

    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"image.png"] forBarMetrics:UIBarMetricsDefault];
在iOS6中,它可以工作,但在iOS5中,状态栏的背景也会更改,如下图所示:

这是怎么发生的。提前谢谢

还有一件事,我只想更改
UINavigationBar
的颜色,所以我使用了以下代码:

[[UINavigationBar appearance] setTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"image.png"]]];

它在iOS6中工作得很好,但在iOS5中不工作。原因是什么?

您可以使用此选项设置状态栏

 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent animated:YES];

因此,状态栏颜色将为黑色,字体颜色将为白色。

您是否检查了
[[UIApplication sharedApplication]statusBarStyle]
是否设置为
UIStatusBarStyleBlack半透明?
?谢谢您的建议。但是,是否仍然可以保持状态栏样式不变,因为这似乎会在该应用退出后更改状态栏样式?请参阅此处:谢谢,似乎开发人员可以随意更改状态栏。希望这不会冒犯我们的用户。是否在用户体验指南中?我还没有读完那本书,是逐案的。通常改变颜色或隐藏它(对于沉浸式应用程序来说)是可以的,但修改状态栏的内容通常是不可接受的。