ios7 改变状态栏颜色

ios7 状态栏默认为白底黑色,怎么改变为黑底白字呢,以下为步骤

 

第一步:在Plist里面添加 UIViewControllerBasedStatusBarAppearance   设置为 :NO        
第二步:在入口类中写:[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; 

 

 

最近为IOS7升级app,遇到了状态栏被导航栏遮住的问题,拿出来分享一下。 这里说的是UINavigationBar,自定义的不用看了

绝大多数情况下,只要用下面这两句话就搞定了

self.navigationController.navigationBar.translucent = NO;

self.tabBarController.tabBar.translucent = NO;



但有时会遇到状态栏一直是一片漆黑


经过多方排查和查找资料,发现这么一句。


      UINavigationController will alter the height of its UINavigationBar to either 44 points or 64 points, depending on a rather strange and undocumented set of constraints. If the UINavigationController detects that the top of its view’s frame is visually contiguous with its UIWindow’s top, then it draws its navigation bar with a height of 64 points. If its view’s top is not contiguous with the UIWindow’s top (even if off by only one point), then it draws its navigation bar in the “traditional” way with a height of 44 points. 

This logic is performed by UINavigationController even if it is several children down inside the view controller hierarchy of your application.

     There is no way to prevent this behavior.



意思就是UINavigationBar的高度会自行调整为44或者64,没有确定的预测方法。而之前作为UINavigationBar背景的图片是44高度的。最后换了张64高度,上面留了20px透明的图片搞定,若按找上面的方式状态栏设为黑底的话20px设置为黑色就好了。

比如这个:
ios7 改变状态栏颜色
 

你可能感兴趣的:(ios7)