zoukankan      html  css  js  c++  java
  • iOS StatusBar状态栏文字颜色更改

    1、将单个页面的StatusBar文字颜色改为白色,动态更改也可以在这里设置

    -(UIStatusBarStyle)preferredStatusBarStyle {
        return UIStatusBarStyleLightContent;
    }

    2、将所有页面的StatusBar文字颜色改为白色

      plist文件中View controller-based status bar appearance 设置为 NO

      在这种情况下,将单个页面的文字颜色更改为黑色

    -(void)viewWillAppear:(BOOL)animated {
        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
    }
    
    -(void)viewWillDisappear:(BOOL)animated {
        [super viewWillDisappear:animated];
        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
    }

     3、scrollView滑动更改StatusBar的文字颜色

    -(void)scrollViewDidScroll:(UIScrollView *)scrollView {
        _offsetY = scrollView.contentOffset.y;
        [self setNeedsStatusBarAppearanceUpdate];   //更新statusBar颜色,调用preferredStatusBarStyle
    }
    
    - (UIStatusBarStyle)preferredStatusBarStyle {
        if (_offsetY <= 136) {
            return UIStatusBarStyleLightContent;
        }
        return UIStatusBarStyleDefault;
    }

     4、当以UINavigationController来做容控制器,而且导航栏没有隐藏的情况下,

      preferredStatusBarStyle方法是无法改变StatusBar的颜色的,

      给UINavigationController写一个类扩展(Catogory)就可以使用上面方法了

    @implementation UINavigationController (UIKitAddition)
    
    -(UIViewController *)childViewControllerForStatusBarStyle {
        return self.visibleViewController;
    }
    
    -(UIViewController *)childViewControllerForStatusBarHidden {
        return self.visibleViewController;
    }
    
    @end

    5、以UINavigationController来做容控制器的时候不想写类扩展,也可以用以下方法

    //白色
    self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
    //黑色
    self.navigationController.navigationBar.barStyle = UIBarStyleDefault;
  • 相关阅读:
    python—打开图像文件报错
    CTFshow萌新赛-萌新福利
    微信小程序bug
    微信小程序
    架构
    命令行
    MyBatis
    avalon
    并发测试工具
    less
  • 原文地址:https://www.cnblogs.com/grein/p/8036222.html
Copyright © 2011-2022 走看看