WKWebView 动态大小问题

WKWebView dynamic sizing issues

在我目前正在开发的应用程序中,UIWebView 用于显示 PowerPoint 等文件。 Web 视图右侧有一个抽屉,可以通过 UIPanGestureRecognizer 打开和关闭。当您调整大小,然后打开或关闭时,Web 视图的右侧将出现一个黑色工件,与此问题中看到的完全一样:Black bar appearing in UIWebview when device orientation changes.

在那个问题和 iOS 8 中用黑色背景呈现 PDF 的问题之间,我决定尝试 WKWebView。这没有任何问题,但是当 web 视图的宽度动态变化时(右约束绑定到平移手势),web 视图中的内容非常慢。 Web 视图要么不调整大小,要么非常 choppy/blocky。使用 UIWebView 时不存在此问题。有没有人有任何指示来解决 UIWebView 和那个黑色工件的问题,或者为什么 WKWebView 表现如此糟糕?

回复:WKWebView

我的猜测是 webview 在调整框架时多次尝试重新呈现其内容。这可能会导致断断续续,可能对此你无能为力。 (不确定)

您可以 'cheat' 的一种方法是在调整框架之前拍下 webview 的快照,然后将其放在 webview 之上。

将 webview 的 hidden 属性 设置为 YES,希望在框架调整时终止重新渲染。

将快照连接到平移手势识别器,当手势结束时,为 webview 提供最终帧并将 hidden 设置回 NO

此时,您可以删除快照(可能使用 alpha 动画),webview 应该只需要重新呈现其内容一次。

快照的外观和 webview 的最终外观之间可能会有差异,但应该是可行的。