1、直接隐藏状态栏:
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<key>UIStatusBarHidden</key>
<true/>
在plist增加上面4行代码就搞定了。这个是全局的
只隐藏一个controller,用下面的就行了
- (BOOL)prefersStatusBarHidden {
returnYES;
}
不过[[UIApplicationsharedApplication]setStatusBarHidden:YESwithAnimation:UIStatusBarAnimationSlide]; 这个方法也是有效果的。
2、让状态栏正常显示
1)不用考虑适配 直接把导航高度改高点,让状态栏居导航上部分,和设置界面差不多啦。
2)如果1不是你想要的,只能想办法让整个view下移了。此时又有很多方面。
1、如果是xib,将xib的∆Y和∆Height都设置一下就可以(网上一大堆,我试了下,没神马效果,不知道是不是设置的问题,不过我几乎没神马xib)。
2、如果是代码布的局,可以设置window的frame,如下:
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
[application setStatusBarStyle:UIStatusBarStyleLightContent];
self .window.clipsToBounds = YES ;
self .window.frame = CGRectMake(0,20, self .window.frame.size.width, self .window.frame.size.height-20);
//added on 19th Sep
self .window.bounds = CGRectMake(0, 20, self .window.frame.size.width, self .window.frame.size.height);
}
|
但是问题很多,剩下的我只能想到对界面单独设置了,后面想到其他方法再更新。
3、更改状态栏字体颜色
-(UIStatusBarStyle)preferredStatusBarStyle{
returnUIStatusBarStyleLightContent;
}这个重写方法能帮到你,或者用[applicationsetStatusBarStyle:UIStatusBarStyleLightContent];
切记:如果你有一个controller是以view的形式add到另一个controller的view里面,代码位置不要放错哦,不然没效果的。