切换应用时,设置iOS的导航栏的背景颜色失效
我想要改变指定控制器的导航栏的背景颜色。
切换应用时,我设置的导航栏的背景颜色失效了,感觉被初始化了。
进入App,设置没问题。请看导航栏。
切换应用时,设置的导航栏的背景颜色失效
搞不定。我列举一下,试过的代码:
1. 设置 statusBar.backgroundColor,
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = [UIColor redColor ];
}
2. 在 statusBar上插入子视图.
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
UIView * backgroundColorView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 375, 20) ];
backgroundColorView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
backgroundColorView.backgroundColor = [UIColor redColor ];
[statusBar.subviews.firstObject insertSubview: backgroundColorView atIndex:0];
3. 插入 layer,也一样, CALayer
我在Github上面,找到了实现的源码,通过Runtime 实现的。 但是我的领导,不准许我使用Runtime实现。
问下 不使用Runtime 的实现方式?
感觉不难,就是我没什么头绪。
望解决。
:-)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
直接在 navigationBar 上添加 view,我这边可以,LZ试下
UINavigationBar *navigationBar = self.navigationController.navigationBar;
系统的状态栏,是 UIWindow层。
切换应用时,设置iOS的导航栏的背景颜色,只需要改View 层,就好了。
Mr_Liu 的答案,适用于 导航栏隐藏的界面。