Estoy intentando que la barra de estado de mi aplicación iOS (webView) no sea translúcida.
Intenté esto dentro de la función viewDidLoad():
self.navigationController?.navigationBar.isTranslucent = falseY esto en la appDelegate:
UINavigationBar.appearance().isTranslucent = false UINavigationBar.appearance().backgroundColor = .whiteNo puede cambiar esas propiedades para la barra de estado. Solo puede establecer, .default, .lightContent. Pero si lo desea, probablemente pueda colocar una vista debajo, que no sea translúcida y tenga un color de fondo. Algo como esto:
let statusBarFrame = UIApplication.shared.statusBarFrame let statusBarView = UIView(frame: statusBarFrame) self.view.addSubview(statusBarView) statusBarView.backgroundColor = .green Eso puede ir en su método viewDidLoad() del ViewController
Swift 5.1 iOS 13.0 Por si acaso para las obsolescencias actuales...
if #available(iOS 13.0, *) { let window = UIApplication.shared.windows.filter {$0.isKeyWindow}.first let statusBarFrame = window?.windowScene?.statusBarManager?.statusBarFrame let statusBarView = UIView(frame: statusBarFrame!) self.view.addSubview(statusBarView) statusBarView.backgroundColor = .green } else { //Below iOS13 let statusBarFrame = UIApplication.shared.statusBarFrame let statusBarView = UIView(frame: statusBarFrame) self.view.addSubview(statusBarView) statusBarView.backgroundColor = .green }Esto me lo solucionó cuando intentaba deslizar una vista desde arriba a la pantalla, sin verla en la barra de estado mientras se anima:
view.clipsToBounds = true