【问题标题】:how can i change the statusbar color in specifi view using swift?如何使用 swift 在特定视图中更改状态栏颜色?
【发布时间】:2015-09-29 00:51:42
【问题描述】:
InViewDidLoad
    UIApplication.sharedApplication().statusBarStyle = .LightContent

 override func viewWillDisappear(animated: Bool) {
        super.viewWillDisappear(animated)

        UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default

    }

通过参考上面的链接,我已经实现了。但是状态栏颜色没有改变,只有状态栏上的文本在改变。 Changing the Status Bar Color for specific ViewControllers using Swift in iOS8

【问题讨论】:

    标签: ios swift statusbar


    【解决方案1】:

    默认情况下,状态栏后面没有单独的背景视图。它实际上只是覆盖在主视图的顶部,因此背景采用了它的颜色。

    因此,如果您在导航控制器中嵌入了一个视图,它只会采用导航栏的颜色。如果没有,那么它将只采用主视图的颜色。

    您可以创建一个位于顶部状态栏下方的单独视图并设置其背景。

    正如迈克尔所说,下面的代码应该可以做到,但我已将宽度更改为设备的宽度,因此它适用于所有情况。

    var statusBarView: UIView = UIView(frame: CGRectMake(0.0, 0.0, UIScreen.mainScreen().bounds.width, 20.0))
    statusBarView.backgroundColor = UIColor.redColor()
    view.addSubview(statusBarView)
    

    【讨论】:

      【解决方案2】:

      如果您的应用正在使用导航栏,则状态栏颜色将更改为与导航栏的颜色相匹配。

      在没有导航栏的情况下,您可以在状态栏后面放置一个 20 点高的视图(例如,一些用颜色填充的视图),这就是向用户显示的颜色。

      我找到了以上信息in this article

      要快速做到这一点,也许可以这样做:

      // make a view tall enough to fit under the status bar
      var statusBarView: UIView = UIView(frame: CGRectMake(0.0, 0.0, 320.0, 20.0))
      
      // give it some color
      statusBarView.backgroundColor = UIColor.redColor()
      
      // and add it to your view controller's view
      view.addSubview(statusBarView) 
      

      【讨论】:

        猜你喜欢
        • 2015-01-13
        • 2016-05-05
        • 1970-01-01
        • 2022-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-09
        • 2021-11-05
        相关资源
        最近更新 更多