Wenn Sie eine PDF sind Laden und wollen eine Hintergrundfarbe anders als die Standard-grau, scheint es, dass es notwendig ist, das Dokument zu warten, bis geladen ist, Löschen Sie dann die Hintergründe der Unteransichten. Der Vorteil der Verwendung einer WKWebView
über eine PDFView
(iOS 11+) besteht darin, dass WKWebView
s Doppeltippen zum Zoomen und eine integrierte Seitenzahlanzeige haben und mit älteren Versionen von iOS kompatibel sind.
Es ist anzumerken, dass es keine großartige Übung ist, sich in Systemansichten zu vertiefen, da Apple die Implementierung jederzeit ändern kann, wodurch die Lösung möglicherweise zerstört wird.
Hier ist, wie ich einen PDF-Vorschau-Controller mit einem schwarzen Hintergrund in Swift implementiert 4:
class SomeViewController: UIViewController {
var observer: NSKeyValueObservation?
var url: URL
init(url: URL) {
self.url = url
super.init(nibName: nil, bundle: nil)
}
func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.black
let webView = WKWebView()
webView.translatesAutoResizingMaskIntoConstraints = false
self.view.addSubview(webView)
NSLayoutConstraint.activate([
webView.topAnchor.constraint(equalTo: self.view.topAnchor),
webView.leftAnchor.constraint(equalTo: self.view.leftAnchor),
webView.rightAnchor.constraint(equalTo: self.view.rightAnchor),
webView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor)
])
self.observer = webView.observe(\.isLoading, changeHandler: { (webView, change) in
webView.clearBackgrounds()
})
webView.loadFileURL(self.url, allowingReadAccessTo: self.url)
}
}
extension UIView {
func clearBackgrounds() {
self.backgroundColor = UIColor.clear
for subview in self.subviews {
subview.clearBackgrounds()
}
}
}
Danke, versuchte es, und auch Putting Farbe: transparent; in CSS-Datei, funktioniert auch nicht. Der Hintergrund ist immer weiß. –