WKWebView动态调整大小问题

时间:2015-01-05 18:44:35

标签: ios objective-c uiwebview wkwebview

在我目前正在处理的应用中,UIWebView用于显示PowerPoints等文件。 Web视图右侧有一个抽屉,可以通过UIPanGestureRecognizer打开和关闭。当您调整大小,然后打开或关闭时,网页视图右侧会出现一个黑色工件,完全如此问题所示:Black bar appearing in UIWebview when device orientation changes

在该问题与iOS 8中的问题之间以及使用黑色背景渲染的PDF时,我决定试用WKWebView。这没有任何问题,但是当web视图的宽度动态变化(右边约束绑定到平移手势)时,web视图中的内容非常慢。 Web视图要么不调整大小,要么像它一样非常不稳定/阻塞。使用UIWebView时,此问题不存在。有没有人有任何指针来解决问题UIWebView和黑色工件,或者为什么WKWebView表现如此糟糕?

enter image description here

1 个答案:

答案 0 :(得分:1)

re:WKWebView

我的猜测是,当调整帧时,webview会尝试多次重新渲染其内容。这可能会导致不稳定,并且可能对此无能为力。 (不确定)

你可以“欺骗”的一种方法是在调整框架之前拍摄webview的快照,然后将其放在webview的顶部。

将webview的hidden属性设置为YES,以便在调整帧时终止重新渲染。

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

此时,你可以删除快照(可能带有alpha动画),webview只需要重新渲染一次。

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