Change Status Bar Background Color in Swift 3

前端 未结 14 1604
挽巷
挽巷 2020-11-28 04:21

In XCode 7.3.x ill changed the background Color for my StatusBar with:

func setStatusBarBackgroundColor(color: UIColor) {
guard  let statusBar = UIApplicatio         


        
14条回答
  •  旧巷少年郎
    2020-11-28 04:45

    I have a custom solution for changing status bar on iOS 13 and below. Here is how to do that:

    if #available(iOS 13.0, *) {
       let app = UIApplication.shared
       let statusBarHeight: CGFloat = app.statusBarFrame.size.height
    
       let statusbarView = UIView()
       statusbarView.backgroundColor = UIColor.red
       view.addSubview(statusbarView)
    
       statusbarView.translatesAutoresizingMaskIntoConstraints = false
       statusbarView.heightAnchor
         .constraint(equalToConstant: statusBarHeight).isActive = true
       statusbarView.widthAnchor
         .constraint(equalTo: view.widthAnchor, multiplier: 1.0).isActive = true
       statusbarView.topAnchor
         .constraint(equalTo: view.topAnchor).isActive = true
       statusbarView.centerXAnchor
         .constraint(equalTo: view.centerXAnchor).isActive = true
    
    } else {
          let statusBar = UIApplication.shared.value(forKeyPath: 
       "statusBarWindow.statusBar") as? UIView
          statusBar?.backgroundColor = UIColor.red
    }
    

    Gist

    Also, check the article iOS 13 How to Change StatusBar Color?

    One last thing, you can still change statusbar style with :

     override var preferredStatusBarStyle : UIStatusBarStyle {
        return UIStatusBarStyle.lightContent
        //return UIStatusBarStyle.default   // Make dark again
    }
    

提交回复
热议问题