IOS 13 не делает UIWindow с уровнем .statusbar в строке состояния iPhone - PullRequest
0 голосов
/ 30 октября 2019

Я добавляю наложение поверх строки состояния iphone. Но когда я переключился на IOS 13.1 на xcode 11.1, я не смог представить его через строку состояния, используя класс UIWindow

class PassTroughWindow: UIWindow {
    var passTroughTag: Int?

    override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {

        let hitView = super.hitTest(point, with: event)

        if let passTroughTag = passTroughTag {
            if passTroughTag == hitView?.tag {
                return nil
            }
        }
        return hitView
    }
}


    class ViewController: UIViewController {
                        var window: PassTroughWindow?
             @IBAction func alertButtonPressed(_ sender: UIButton) {
                        print("Height : \(UIApplication.shared.statusBarFrame.height)")
                        print("Height : \(UIApplication.shared.statusBarFrame.maxY)")
                        let frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: UIApplication.shared.statusBarFrame.maxY)
                        let banner = UIView(frame: frame)
                        banner.layer.cornerRadius = 2.5
                        banner.backgroundColor = UIColor.init(red: 128.0/255.0, green: 161.0/255.0, blue: 193.0/255.0, alpha: 1.0)

                        let label = UILabel.init(frame: CGRect.init(x: 0, y: 0, width: frame.width, height: frame.height))
                        label.textAlignment = .center
                        label.font = .boldSystemFont(ofSize: 10)
                        label.text = "No internet connection"
                        label.textColor = .black
                        banner.addSubview(label)

                        self.window = PassTroughWindow(frame: UIScreen.main.bounds)
                        self.window?.rootViewController = UIViewController()
                        self.window?.windowLevel = .statusBar + 1
                        self.window?.addSubview(banner)
                        self.window?.makeKeyAndVisible()
                        self.window?.alpha = 1.0

                    }

        }

Тот же код, если он выполняется в Xcode 11.1 на IOS 13.1, тогда он дает такой результатв отладчике (): - enter image description here

Принимая во внимание, что в Xcode 10.2 на IOS 12.2 это дает мне этот результат

enter image description here

Конечный результат в IOS 13.1, Xcode 11.1 равен

enter image description here

И конечный результат в IOS 12.2, xcode 10.2 равен

enter image description here

Как мне представить наложение поверх статубара в IOS 13?

...