web-dev-qa-db-ja.com

iOS 13でステータスバーアルファを変更するにはどうすればよいですか?

IOS 13でステータスバーアルファを変更したい。

let statusBarWindow = UIApplication.shared.value(forKey: "statusBarWindow") as? UIWindow
statusBarWindow?.alpha = 0.5

これを試すと、アプリがクラッシュします(スレッド1:シグナルSIGABRT)。

5
Benjamin Hutter

IOS 13以下でステータスバーを変更するためのカスタムソリューションがあります。これを行う方法は次のとおりです。

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
}

要旨

また、記事を確認してください iOS 13ステータスバーの色を変更するには?

最後に、ステータスバーのスタイルを次のように変更できます。

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