iOS 通过代码设置statusBar的tintColor颜色

{app.params.name}} {app.params.name}} {app.params.name}} 在iOS6中,statusbar的颜色是由当前页面的UINavigationBar决定的,也就是当前view中的UINavigationBar决定statusbar的tintColor的。如果我们的UIViewController是UINavigationController的子集,那么就好statusbar的颜色还好设置,如果UINavigationBar被hide掉,或是根本就没有UINavigationController,那么在iOS6上statusbar的颜色就是黑色。
如何办呢?我们如何才能在iOS6上设置statusbar的颜色?
刚才说了,statusbar的颜色是由UINavigationBar决定的,那么我们可不可以在当前view中放一个UINavigationBar并设置其颜色,影响其statusbar的颜色。 我们的假设是正确的,这个方法的确可行。

在我们的view中放入一个UINavigationBar,并设置其frame=CGRectMake(0, -43, 320, 44);

在这儿y的值一定得是-43(UINavigationBar有一个像素的值),不然一样达不到效果。

实例代码如下:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.personSearch.delegate = self;
    self.dataTable.delegate = self;
    self.dataTable.dataSource = self;
    
    
    //设置状态栏的颜色为红色
    UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0.0, -43.0, 320, 44)];
    navigationBar.tintColor = [UIColor redColor];
    [self.view addSubview:navigationBar];
}


版权声明

davidzhang 创作并维护的 Gowhich 博客采用 创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 Gowhich 博客( https://www.gowhich.com ),版权所有,侵权必究。

本文永久链接: https://www.gowhich.com/blog/165

comments powered by Disqus