簡體   English   中英

IOS 13 沒有在 iPhone 的狀態欄上顯示帶有 level.statusbar 的 UIWindow

[英]IOS 13 not making UIWindow with level .statusbar present over status bar of iPhone

我在 iphone 的狀態欄上添加了一個覆蓋。 但是當我在 xcode 11.1 上切換到 IOS 13.1 時,我無法使用 UIWindow class 在狀態欄上顯示它

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

                    }

        }

如果在 IOS 13.1 上的 Xcode 11.1 中執行相同的代碼,那么它會在調試器 () 中給出以下結果:- 在此處輸入圖像描述

而在 IOS 12.2 上的 xcode 10.2 中,它給了我這個結果

在此處輸入圖像描述

IOS 13.1、Xcode 11.1 的最終結果是

在此處輸入圖像描述

IOS 12.2, xcode 10.2 的最終結果是

在此處輸入圖像描述

如何在 IOS 13 中的狀態欄上顯示疊加層?

相關的 API 和值應該在文檔中被棄用。

我們目前擁有的解決方法是覆蓋prefersStatusBarHidden

查看我在這里找到的帖子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM