11、iOS状态栏显示

IOS7之前

//显示隐藏状态栏
[[UIApplicationsharedApplication] setStatusBarHidden:isHide];
//设置状态栏颜色
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
UIStatusBarStyleLightContent //白色
UIStatusBarStyleDefault     //黑色

IOS7及以后
1、首先

//这个方法是写在BasenavigationController中
/**为了让该navgationController下的每一个VC都可以获得更改statusBar的权利*/
-(UIViewController *)childViewControllerForStatusBarStyle{
    return self.topViewController;
}

2、然后在显示的View中

//下面方法是写在Viewcontroller中,重载父类方法
/**状态栏格式*/
-(UIStatusBarStyle)preferredStatusBarStyle{
    switch (self.cqStatusBarType) {
        case CQStatusTypeBlack:
        {
            return UIStatusBarStyleDefault;
        }
            break;
        case CQStatusTypeWhite:
        {
            if (ISIOS7) {
                return UIStatusBarStyleLightContent;
            }else{
                return UIStatusBarStyleBlackTranslucent;
            }
        }
            break;
        default:
            break;
    }
    return UIStatusBarStyleDefault;
}

-(BOOL)prefersStatusBarHidden{

    return  NO;
}

注意 如果info.plist文件中 UIViewControllerBasedStatusBarAppearance == NO 的话以上无效,用iOS7之前的方法有用
//在当前Controller中需要更新状态时需要在主线程执行该方法
[[[[UIApplication sharedApplication] keyWindow] rootViewController] setNeedsStatusBarAppearanceUpdate];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容