美文网首页iOS Developer
11、iOS状态栏显示

11、iOS状态栏显示

作者: MartinCQ | 来源:发表于2017-06-08 15:02 被阅读777次

    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];

    相关文章

      网友评论

        本文标题:11、iOS状态栏显示

        本文链接:https://www.haomeiwen.com/subject/xcqtqxtx.html