Как видите, это произошло только в iOS 12.
iOS 12 & emsp; emsp; emsp; emsp; emsp; emsp; emsp; & emsp; & emsp; iOS 11
& EMSP;
вот мой код:
import UIKit
import WebKit
class ViewController: UIViewController {
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
override var prefersStatusBarHidden: Bool {
return false
}
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
webView = WKWebView(frame: UIScreen.main.bounds)
view.addSubview(webView)
webView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
webView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
webView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
webView.loadHTMLString("<p><iframe src=\"https://www.youtube.com/embed/HCjNJDNzw8Y\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"\"></iframe></p>", baseURL: URL(string: "https://www.youtube.com/"))
setNeedsStatusBarAppearanceUpdate()
}
}
мой info.plist прямо ниже:
Кто-нибудь знает, как это решить?
Я знаю, что если установить ключ View controller-based status bar appearance
на YES
, это поможет, но в этом случае это будет выглядеть так:
Существует неизвестная причина для изменения строки состояния с белого на черный, и что касается моего реального проекта в большом масштабе, так что было бы неплохо решить в исходной настройке, а не заставлять каждый ViewController наследовать от одного класса, который является подклассом из UIViewController или добавляет dynamic
для переопределения prefersStatusBarHidden
и preferredStatusBarStyle
в расширении (здесь просто попробуйте заставить его показывать строку состояния обновления, когда View controller-based status bar appearance
установлен в YES
)
Надеюсь, есть решение для View controller-based status bar appearance
, установленное на NO
, которое будет очень полезно, спасибо.
здесь - это демонстрационный проект, он был создан Xcode9.4, не стесняйтесь попробовать его.