首页 文章

在启动画面iOS 7中更改状态栏文本颜色

提问于
浏览
89

我知道已经有一些stackoverflow questions说明了如何更改所有视图控制器的状态栏 . 我目前正在改变状态栏的颜色:

if(IS_IOS7)
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

application:DidFinishLaunching

另外,我已将plist中 UIViewControllerBasedStatusBarAppearance 的值更改为 NO . 但是,在启动画面中,它仍会显示带有黑色的状态栏文本 .

是否可以更改状态栏文本颜色的颜色 in the splash screen

6 回答

  • 1

    在项目plist文件中添加"Status Bar Style"属性(键为 UIStatusBarStyle ) . 然后忽略此属性的下拉列表中列出的所有可能值,并键入 UIStatusBarStyleLightContent .

    而且您不必在plist中将 UIViewControllerBasedStatusBarAppearance 设置为 NO ,您可以将 preferredStatusBarStyle 设置为视图控制器 .

  • 14

    You can do this without writing any line of code 执行以下操作,使整个应用程序的状态栏文本颜色为白色

    在你 project plist 文件:

    • 状态栏样式: UIStatusBarStyleLightContent

    • 查看基于控制器的状态栏外观: NO

    • 状态栏最初隐藏: NO

  • 209

    您可以执行以下操作以在整个应用程序中获取浅色状态栏 .

    • 在项目导航器中选择项目的名称 .

    • 从项目编辑器左栏的列表中选择目标名称 .

    • 单击项目编辑器顶部的“常规” .

    • 设置状态栏样式 - >灯光

    在plist文件中添加以下值:

    • 状态栏样式 - UIStatusBarStyleLightContent

    • 查看基于控制器的状态栏外观 - NO

    这将帮助您在整个应用程序中获取WHITE颜色的状态栏,包括SPLASH SCREEN .

  • 2

    在plist中将 UIViewControllerBasedStatusBarAppearance 设置为No

    然后在did finish launch选项中添加以下代码

    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
    
       [application setStatusBarStyle:UIStatusBarStyleLightContent];
    
        self.window.clipsToBounds =YES;
    
        self.window.frame =  CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
    }
    

    请按照此代码为我工作

  • 32

    这是关于状态栏更改的Apple Guidelines/Instruction .

    这是 - 如何更改状态栏样式:

    如果要设置状态栏样式,应用程序级别,然后在.plist'文件中将UIViewControllerBasedStatusBarAppearance设置为NO` .

    如果您要设置状态栏样式,请在视图控制器级别,然后按照下列步骤操作:

    • 如果需要仅在UIViewController级别设置状态栏样式,请在 .plist 文件中将 UIViewControllerBasedStatusBarAppearance 设置为 YES .

    • 在viewDidLoad中添加函数 - setNeedsStatusBarAppearanceUpdate

    • 覆盖视图控制器中的preferredStatusBarStyle .

    override func viewDidLoad() {
        super.viewDidLoad()
        self.setNeedsStatusBarAppearanceUpdate()
    }
    
    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
    

    根据状态栏样式设置级别设置.plist的值 .
    enter image description here

    您可以在应用程序启动期间或视图控制器的viewDidLoad期间为状态栏设置背景颜色 .

    extension UIApplication {
    
        var statusBarView: UIView? {
            return value(forKey: "statusBar") as? UIView
        }
    
    }
    
    // Set upon application launch, if you've application based status bar
    class AppDelegate: UIResponder, UIApplicationDelegate {
    
        var window: UIWindow?
    
        func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
            UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
            return true
        }
    }
    
    
    or 
    // Set it from your view controller if you've view controller based statusbar
    class ViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
        }
    
    }
    

    结果如下:

    enter image description here

  • 7

    您可以执行以下操作以在整个应用程序中获取浅色状态栏 .

    在项目导航器中选择项目的名称 . 从项目编辑器左栏的列表中选择目标的名称 . 单击项目编辑器顶部的“常规” . 设置状态栏样式 - >灯光

相关问题