как покрыть весь экран с помощью UIView программно Swift - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь поместить UIview (), чтобы он покрывал весь экран, поэтому, когда я нажимаю кнопку, я могу поместить тему в темном режиме. он работает нормально, единственная проблема в том, что он не покрывает навигационную панель, и это то, что я хочу сделать. Я посмотрел несколько вещей, которые я нашел, этот код работает в учебнике, который я видел, но не работает, теперь думаю, что Swift обновил язык, делающий это решение старым

    if let window = UIApplication.shared.keyWindow {
        let blackView = UIView()
        blackView.backgroundColor = .black
        view.addSubview(blackView)
               blackView.frame = window.frame



    } 

1 Ответ

1 голос
/ 10 января 2020

Swift 4.X

Вы можете добавить расширение в свой проект.

extension UIView {

    func addToWindow()  {
        let window = UIApplication.shared.keyWindow!
        self.frame = window.bounds
        window.addSubview(self)
    }
}

Использование:

bgView = UIView(frame: UIScreen.main.bounds)
bgView.backgroundColor = UIColor(white: 0, alpha: 0.4)
bgView.addToWindow()
...