WKWebView 动态调整大小问题
Posted
技术标签:
【中文标题】WKWebView 动态调整大小问题【英文标题】:WKWebView dynamic sizing issues 【发布时间】:2015-01-05 18:44:35 【问题描述】:在我目前正在开发的一个应用程序中,UIWebView
用于显示 PowerPoint 等文件。 Web 视图右侧有一个抽屉,可以通过UIPanGestureRecognizer
打开和关闭。当您调整大小,然后打开或关闭时,Web 视图的右侧会出现一个黑色伪影,与此问题中看到的完全相同:Black bar appearing in UIWebview when device orientation changes。
在这个问题和 ios 8 中的 PDF 呈现黑色背景的问题之间,我决定尝试WKWebView
。这没有任何问题,但是当 Web 视图的宽度动态变化时(右约束绑定到平移手势),Web 视图中的内容非常慢。 Web 视图要么不调整大小,要么像它那样非常不稳定/块状。使用 UIWebView
时不存在此问题。有没有人有任何指针可以解决UIWebView
和那个黑色工件的问题,或者为什么WKWebView
表现如此糟糕?
【问题讨论】:
【参考方案1】:回复:WKWebView
我的猜测是 webview 试图在调整框架时多次重新渲染其内容。这可能会导致不稳定,可能您对此无能为力。 (不确定)
您可以“作弊”的一种方法是在调整其框架之前拍摄 webview 的快照,并将其放置在 webview 的顶部。
将 webview 的 hidden
属性设置为 YES
,希望在调整框架时终止重新渲染。
将快照连接到平移手势识别器,当手势结束时,为 webview 提供最后一帧并将hidden
设置回NO
此时,您可以删除快照(可能带有 alpha 动画),并且 webview 应该只需要重新渲染其内容一次。
快照的外观和 webview 的最终外观之间可能会有差异,但它应该是可行的。
【讨论】:
以上是关于WKWebView 动态调整大小问题的主要内容,如果未能解决你的问题,请参考以下文章