Как удалить прозрачность строки состояния в приложении IOS

#ios #swift

Вопрос:

Я хочу удалить прозрачность строки состояния введите описание изображения здесьздесь то, что я пробовал до сих пор:

 class ViewController: UIViewController {    @IBOutlet var webview: WKWebView!    override func viewDidLoad() {  super.viewDidLoad()    let statusBarFrame = UIApplication.shared.statusBarFrame  let statusBarView = UIView(frame: statusBarFrame)  self.view.addSubview(statusBarView)  statusBarView.backgroundColor = .green   }   }  

Ответ №1:

Не снимайте его. Не хочу его удалять. Строка состояния прозрачна. Примите факты и работайте с ними, а не против них.

Если вы хотите, чтобы область строки состояния выглядела зеленой, поместите за ней что-нибудь зеленое. Однако было бы лучше использовать навигационный контроллер и панель навигации, которая автоматически расширяет свой рисунок за строкой состояния.

Ответ №2:

Добавьте подвида в верхней части строки состояния с помощью statusBarManager .

В ViewController:

 class ViewController: UIViewController {   override func viewDidLoad() {  super.viewDidLoad()   if let statusBarFrame = view.window?.windowScene?.statusBarManager?.statusBarFrame {  let statusBarView = UIView(frame: statusBarFrame)  view.addSubview(statusBarView)  statusBarView.backgroundColor = .green  }  } }  

Еще в SceneDelegate:

 let statusBarFrame = UIApplication.shared.windows.filter {$0.isKeyWindow}.first?.windowScene?.statusBarManager?.statusBarFrame let statusBarView = UIView(frame: statusBarFrame) view.addSubview(statusBarView) statusBarView.backgroundColor = .green  

Ответ №3:

Используйте этот код для изменения фона строки состояния

 if (@available(iOS 13, *)) {  let statusBarView = UIView()  statusBarView.frame = UIApplication.shared.statusBarFrame  statusBarView.backgroundColor = UIColor.green  UIApplication.shared.keyWindow?.addSubview(statusBarView) }