iOS 13 设置状态栏背景颜色和文字颜色

首先在info.plist文件中把View controller-based status bar appearance设置为NO 要不然[UIApplicationsharedApplication].statusBarStyle = UIStatusBarStyleDefault;会不起作用

接着…….

改变文字颜色

 if (@available(iOS 13.0, *)) {

        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDarkContent;//文字是黑色

} else {

        [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;//文字黑色

}

UIStatusBarStyleLightContent 文字白色

UIStatusBarStyleDefault 默认的黑色,iOS 13以下设置 iOS 13以上设置无效要用

UIStatusBarStyleDarkContent

if (@available(iOS 13.0, *)) {

        if (!_statusBar) {

            // iOS 13  弃用keyWindow属性  从所有windowl数组中取

            UIWindow *keyWindow = [UIApplication sharedApplication].windows[0];

            _statusBar = [[UIView alloc] initWithFrame:keyWindow.windowScene.statusBarManager.statusBarFrame];

            [keyWindow addSubview:_statusBar];

        }

    } else {

      _statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];

   }

    if ([_statusBar respondsToSelector:@selector(setBackgroundColor:)]) {

        _statusBar.backgroundColor = [UIColor blackColor];

    }

这个可以改变背景颜色

你可能感兴趣的:(iOS 13 设置状态栏背景颜色和文字颜色)