WkWebView 中 PDF 的第一页呈现像素化

First page of PDF in WkWebView is rendered pixelated

我在 WkWebView 中呈现多页 pdf 时遇到了一些问题。

如果它是单个页面,它看起来不错。但是任何多页 PDF 的第一页看起来都很糟糕。我不知道为什么。

我这样加载请求

wkWebView.load(URLRequest(url: request as! URL))

我在另一个视图中保留了一个 wkWebView 并避免滚动滚动(这是有原因的,我知道 scrollView 是如何工作的)然后我将 wWebView 的高度和它的 scrollView 设置为与内容大小。

wkWebView.frame.size.height = wkWebView.scrollView.contentSize.height
wkWebView.frame.size.width = UIScreen.main.bounds.width
wkWebView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
wkWebView.scrollView.delegate = self

使用以下方法:

[self.wkWebView loadFileURL:fileURL allowingReadAccessToURL:baseUrl];

注意: FileURL,是需要加载的HTML文件路径 BaseUrl 是HTML 上一层的文件路径。这个坑,baseUrl和fileURL不能一样!

发生这种情况的原因是因为在执行实际请求之前,您需要将 wkWebView 作为子视图添加到将包含它的 scrollView 中。否则页面最终可能会像素化,并且在放大时它们也无法正常运行。

解决方案:

self.scrollView.addSubview(wkWebView)
wkWebView.load(URLRequest(url: request as! URL))

不会工作:

wkWebView.load(URLRequest(url: request as! URL))
self.scrollView.addSubview(wkWebView)

与此问题类似: