【问题标题】:How to change status bar style during launch on iOS 7如何在 iOS 7 启动期间更改状态栏样式
【发布时间】:2013-09-26 06:56:07
【问题描述】:

当我启动我的应用程序时,它会显示启动图像和黑色状态栏。如何更改它以使状态栏在启动期间亮起?我已在我的 AppDelegate didFinishLoading 方法中将状态栏外观设置为亮起,它适用于应用程序的其余部分。

【问题讨论】:

    标签: ios objective-c ios7


    【解决方案1】:

    在您的 Info.plist 文件中添加此键值对:

    UIStatusBarStyle: UIStatusBarStyleLightContent
    

    默认(黑色)值为UIStatusBarStyleDefault

    您还可以将~iphone~ipad 附加到密钥。

    【讨论】:

    • 对于那些在移动设备上查看此内容并像我一样感到困惑的人:这是一个波浪号,而不是一个连字符。
    【解决方案2】:

    2 steps:

    1. 这通常是开发人员知道如何做的 - 在目标设置 > 常规 > 状态栏样式 > 更改为浅色。这将使 Info.plist 包含 UIStatusBarStyleLightContent

    2. 这一步经常被遗漏 – 在 Info.plist 中,添加 View controller-based status bar appearance 并设置为 NO

    【讨论】:

    • 我只有以下选项:“在应用程序启动期间隐藏”和“需要全屏”。没有条形样式。
    • @NicolasMiari 如果您没有看到它,那么您必须添加它。点击行中的 +。
    • 我就是为 .plist 做的。我说的是目标信息窗格。
    • @NicolasMiari 这两个步骤都是关于 Info.plist。
    • 我没有在 XCode 8 中看到更改灯光设置 - 截图:i.imgur.com/5aF5OG2.png - 请您指教
    【解决方案3】:

    只需在您想要的任何视图或文件中定义此方法:

    - (UIStatusBarStyle)preferredStatusBarStyle
    {
        return UIStatusBarStyleLightContent;
    }
    
    // swift 
    override func preferredStatusBarStyle() -> UIStatusBarStyle {
        return .LightContent
    }
    

    【讨论】:

    • 这对我有帮助!谢谢!
    • 我这样做了,但没有任何改变。有什么建议吗? @msurguy
    • “发布期间” - 这是针对每次观看的。
    • 这适用于在不同视图上更改状态栏样式,而不是在启动期间(这是 OP 要求的)
    • 这是迄今为止更改状态栏外观最糟糕的方法,需要您在每个单独的 viewController 上复制此代码,或者创建一个子类,这两种方法都远不如 .plist 方法跨度>
    【解决方案4】:

    就我而言,UIStatusBarStyleLightContent 不是一个可能的选择。我在我的 .plist 中将 Transparent black style (alpha of 0.5) 设置为键 Status bar style 的值,结果是一个白色的状态栏。

    【讨论】:

    • 对我来说也一样,奇怪。我发现除了默认值之外的任何值都会导致类似于UIStatusBarStyleLightContent 的浅色状态栏内容。
    • Xcode 5 中没有这个选项,你必须手动输入。
    • 如果您单击该字段而不是显示选项,您可以输入任何您喜欢的值。我刚刚粘贴了它,它工作正常。
    【解决方案5】:

    适用于 iOS7 和 iOS8

    您需要在 Info.plist 文件属性中设置密钥 Status bar style:

    1. 白色状态栏设置Opaque black styleTransparent black style (alpha of 0.5)
    2. 设置Gray style (default) 设置黑色状态栏颜色。

    看起来您为状态栏设置了背景样式,XCode 了解需要选择哪种颜色的状态栏。深色背景 - 白色状态栏,浅色背景 - 黑色状态栏

    【讨论】:

      【解决方案6】:
      **
      
       - You must take care of these three things:
      
      **
      
      **- In info.plist file**
      Set UIViewControllerBasedStatusBarAppearance to YES
      
      **- In your view controller** in which you want change color of status bar
      add this [self setNeedsStatusBarAppearanceUpdate] in viewDidLoad
      
      **- Lastly, add this method**
      - (UIStatusBarStyle)preferredStatusBarStyle
      {
            return UIStatusBarStyleLightContent;
      }
      
      Note: If you want to set color of statusBar for all the View Controllers then steps are
      **- In info.plist file**
      Set UIViewControllerBasedStatusBarAppearance to YES
      
      **- Then add this in appDelegate**
      [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent; // **It is deprecated in iOS 9**
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-24
        • 2014-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多