ios - 更改状态栏的背景颜色
问题描述
我有一个非常简单的 Web 视图项目,它只加载一个网站。但是有一个错误,如果我向下滚动,网站内容会显示在状态栏中。
我读到这是因为 ViewController 的背景颜色设置为透明,如何将其更改为另一种颜色?
我试过这样:
let color = UIColor.black;
self.view.backgroundColor = color
但没有任何改变
完整代码:
ViewController.swift
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
@IBOutlet var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
// 1 The webView loads the url using an URLRequest object.
let url = URL(string: "https://www.blizz-z.de/")!
webView.load(URLRequest(url: url))
// 2 A refresh item is added to the toolbar which will refresh the current webpage.
let refresh = UIBarButtonItem(
barButtonSystemItem: .refresh,
target: webView,
action: #selector(webView.reload)
)
toolbarItems = [refresh]
navigationController?.isToolbarHidden = true
navigationController?.isNavigationBarHidden = true
}
override func loadView() {
webView = WKWebView()
webView.navigationDelegate = self
view = webView
let color = UIColor.black;
self.view.backgroundColor = color
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
title = webView.title
}
}
我可以使用以下代码禁用状态栏来修复错误,但我尝试保留它:
override var prefersStatusBarHidden: Bool {
return true
}
解决方案
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let height = UIScreen.main.bounds.height
let width = UIScreen.main.bounds.width
let webView = WKWebView(frame: CGRect(x: 0, y: 0, width: width, height: height))
webView.load(URLRequest(url: (URL(string: "https://www.blizz-z.de/")!)))
view.addSubview(webView)
UIApplication.shared.statusBarView?.backgroundColor = #colorLiteral(red: 0.9529411765, green: 0.9529411765, blue: 0.9529411765, alpha: 1)
}
}
extension UIApplication {
var statusBarView: UIView? {
if responds(to: Selector("statusBar")) {
return value(forKey: "statusBar") as? UIView
}
return nil
}
}
推荐阅读
- javascript - 如何按 ReactJS 材料表中嵌套对象中的值分组?
- html - 如何将excel导入html网页
- css - css page-break-after:避免;不工作
- javascript - 如何使用 Jest 解决模拟函数中的外部承诺?
- python - 如何通过 Python 中的 ASCII 字符串恢复 Unicode 字符串?
- javascript - 当角度没有输入时如何将值设置为0
- php - 如何在数据库的不同列中插入多个复选框
- javascript - 需要从 Object Literal(JSON 字符串/对象)中找到键值对
- python - 循环遍历多个字典项以使用小波分析去噪组合
- javascript - 有没有办法让 JavaScript 记住随机选择的数组的哪一部分?