‘windows‘ was deprecated in iOS 15.0: Use UIWindowScene.windows on a relevant window scene instead

前言:

iOS 15.0

当适配在15.0以上时,会出现这么一个警告
在这里插入图片描述
解决办法、亲测有效

///状态栏高度
public var K_StatusHeight: CGFloat {
    get {
        let keyWindow = UIApplication.shared.connectedScenes
                        .map({ $0 as? UIWindowScene })
                        .compactMap({ $0 })
                        .first?.windows.first
        let statusBar = keyWindow?.windowScene?.statusBarManager?.statusBarFrame
        return statusBar?.size.height ?? 20.0
    }
}

当然,如果你的适配登记低于15.0也可以这么用

public var K_StatusHeight: CGFloat {
    get {
        if #available(iOS 13.0, *) {
            let keyWindow = UIApplication.shared.connectedScenes
                .map({ $0 as? UIWindowScene })
                .compactMap({ $0 })
                .first?.windows.first
            let statusBar = keyWindow?.windowScene?.statusBarManager?.statusBarFrame
            return statusBar?.size.height ?? 20.0
        } else {
        	return UIApplication.shared.statusBarFrame.size.height
        }
    }
}

当然,这里只是发现一个警告⚠️提示,并未发现其他什么问题

猜你喜欢

转载自blog.csdn.net/u014651417/article/details/123423893