美文网首页
iOS状态栏(UIStatusBar)

iOS状态栏(UIStatusBar)

作者: fangfangzhuzhu | 来源:发表于2018-03-30 14:07 被阅读0次

    1.设置启动页的状态栏样式

    进入Xcode的Targets->General->DeploymentInfo->Status Bar Style,设置其值为Default时,状态栏样式为黑色;设置其值为Light时,状态栏样式为白色。设置完成之后info.plist里面的Status bar style值自动改变。


    image.png

    (在info.plist文件中,找到Status bar style键,其值为Gray style (default)时,状态栏样式为黑色;其值为UIStatusBarStyleLightContent时,状态栏样式为白色,作用跟直接在Deployment Info里选择一样。)

    2.如果设置info.plist中UIViewControllerBasedStatusBarAppearance为NO,表示不需要控制器自己控制状态栏则:

    启动后在AppDelegate中全局设置状态栏样式

    [[UIApplicationsharedApplication]setStatusBarStyle:UIStatusBarStyleLightContent];
    

    如果页面需要特殊处理UIStatusBarStyleDefault,在viewWillAppear和viewWillDisappear中设置即可

    - (void)viewWillAppear:(BOOL)animated {
    
        [superviewWillAppear:animated];
    
        [UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleDefault;
    
    }
    
    - (void)viewWillDisappear:(BOOL)animated {
    
        [superviewWillDisappear:animated];
    
        [UIApplicationsharedApplication].statusBarStyle=UIStatusBarStyleLightContent;
    
    }
    

    3.如果设置info.plist中UIViewControllerBasedStatusBarAppearance为YES,那么需要在控制器里实现preferredStatusBarStyle方法,自己控制状态栏,全局设置无效

    - (UIStatusBarStyle)preferredStatusBarStyle{
    
        return UIStatusBarStyleLightContent;
    
    }
    

    对于导航控制器,需要在分类中实现preferredStatusBarStyle方法来控制导航控制器以及子控制器的状态栏

    
    - (UIStatusBarStyle)preferredStatusBarStyle{
    
        return UIStatusBarStyleLightContent;
    
    }
    
    

    但是如果子控制器的状态栏显示与UINavigationController分类里设置的不一致,子控制器即使实现preferredStatusBarStyle方法也不会被调用,就需要特殊处理

    解决办法:让UINavigationController实现- (UIViewController *)childViewControllerForStatusBarStyle方法。将顶层的控制器返回。这样就可以了。

    在分类中实现childViewControllerForStatusBarStyle

    - (UIViewController*)childViewControllerForStatusBarStyle
    
    {
    
       returnself.topViewController;
    
    }
    

    然后在每个子制器里自己设置preferredStatusBarStyle

    相关文章

      网友评论

          本文标题:iOS状态栏(UIStatusBar)

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