[英]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 中的狀態欄上顯示疊加層?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.