在 UIStatusBar 上设置与 UINavigationBar 相同的背景颜色
Posted
技术标签:
【中文标题】在 UIStatusBar 上设置与 UINavigationBar 相同的背景颜色【英文标题】:Setting the same background colour on UIStatusBar as UINavigationBar 【发布时间】:2014-01-25 11:15:13 【问题描述】:我希望在我的应用程序中为UIStatusBar
设置背景颜色,我希望它与UINavigationBar
的背景颜色相匹配,与Facebook
和Instagram
应用程序相同。
我尝试将此函数添加到我的AppDelegate
中的didFinishLaunchingWithOptions
方法中:
-(void) setStatusBarColour
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0,self.window.rootViewController.view.frame.size.width, 20)];
view.backgroundColor=[[UIColor lightGrayColor] colorWithAlphaComponent:0.6];
[self.window.rootViewController.view addSubview:view];
它似乎不起作用。
有没有简单的方法可以做到这一点?
【问题讨论】:
【参考方案1】:在 ios 7 上,状态栏的背景颜色继承自导航栏的颜色。 所以你可以做这样的事情
[[UINavigationBar appearance] setBarTintColor:[UIColor yellowColor]];
并查看此链接:http://www.appcoda.com/customize-navigation-status-bar-ios-7/
【讨论】:
不错。我正在玩这个功能,并且还设置了导航栏的 backgroundColor 属性而不是栏的色调。但它现在有效。谢谢! :)【参考方案2】:您不需要为此编写额外的代码。一旦你改变了navigationBar的颜色,statusBar会自动为字体调整相同的颜色和色调。
如何改变导航栏的颜色?
关注this link
这是 Facebook 栏颜色十六进制代码:#3B5998
所以你的代码是:
[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:59 green:89 blue:152 alpha:1]];
【讨论】:
以上是关于在 UIStatusBar 上设置与 UINavigationBar 相同的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章
ios上 更改 状态栏(UIStatusBar)的颜色,你值得一看收藏
隐藏 UIStatusBar / 移动 UINavigationBar
使用 View Swift 部分覆盖 UIStatusBar
在 iPhone X 应用程序因“NSUnknownKeyException”而崩溃,原因:“[<UIStatusBar_Modern