更改 UINavigationBar 外观背景图像时状态栏颜色更改
Posted
技术标签:
【中文标题】更改 UINavigationBar 外观背景图像时状态栏颜色更改【英文标题】:Status bar color changed when change UINavigationBar appearance backgroundimage 【发布时间】:2012-11-23 05:11:30 【问题描述】:我用这行代码来改变导航栏背景:
[[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] statusBarStyle]
是否设置为UIStatusBarStyleBlackTranslucent
?
谢谢,Eonil,你的建议很有效。但是无论如何要保持状态栏样式不变,因为即使在此应用退出后,这似乎也会改变状态栏样式?
参考这里:***.com/questions/4393348/…
谢谢,看来开发者可以随意更改状态栏了。希望这不会冒犯我们的用户。它在用户体验指南中吗?我还没有读完。
视情况而定。通常改变颜色或隐藏它(对于沉浸式应用程序)是可以的,但修改状态栏的内容通常是不可接受的。
【参考方案1】:
你可以用这个来设置你的状态栏
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent animated:YES];
所以状态栏颜色为黑色,字体颜色为白色..
【讨论】:
以上是关于更改 UINavigationBar 外观背景图像时状态栏颜色更改的主要内容,如果未能解决你的问题,请参考以下文章