我在UITableViewCell里面有WKWebView.Web视图加载请求,然后在完成加载后,我将Web视图高度的大小调整为等于其内容高度,然后调整表视图单元格高度以相应地适应.
发生了什么是Web视图只显示适合屏幕大小的区域.当我向下滚动时,一切都是白色的.但是我看到以正确的高度呈现的Web视图,点击并按住Web视图上的白色区域仍然可以看到选择.使用缩放进行缩放可使屏幕上显示的Web视图区域可见,但其他区域有时会变为白色.
它在iOS 8和9上运行良好.我已经创建了一个示例项目来演示此行为:https: //github.com/pawin/strange-wkwebview
Open Radar:https://openradar.appspot.com/radar? id = 4944718286815232
我正在尝试在WKWebView中捕获整页截图.发生的事情只是视口中可见的内容被渲染并且图像的其余部分呈现灰色.它具有正确的尺寸,只是没有从图像捕获中获取所有数据.
我尝试了几种方法,这个方法似乎最有希望:
extension WKWebView {
// only captures part of the screen
func screenCapture(size: CGSize) -> UIImage {
var image: UIImage?
// sets the scrollView to the height of it's content
self.scrollView.bounds = CGRectMake(0, 0, size.width, size.height)
UIGraphicsBeginImageContextWithOptions(size, true, 1.0)
self.scrollView.drawViewHierarchyInRect(self.scrollView.bounds, afterScreenUpdates: true)
image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image!
}
}
Run Code Online (Sandbox Code Playgroud)
有没有人设法在iOS8 +中捕获WKWebView的完整屏幕截图?如果是这样,你的解决方案是什么?我在iOS9中遇到了同样的问题.
我可以捕获所有内容的截图UIWebView通过调整帧UIScrollView的UIWebView.但是,我无法WKWebView通过相同的方法捕获所有内容的截图.
我用于捕获的方法UIWebView如下:
webview.scrollViewwebview.scrollView超级视图webview.scrollView.框架是相同的webview.scrollView.contentSize renderInContext或绘制drawViewHierarchyInRect但是,这种方法会捕捉到白色的截图WKWebview.它不起作用!
我打印了所有级别WKWebView,然后我发现UIView(WKContentView)的大小与contentView相同,你可以通过这个级别找到这个视图:
我也试图捕获WKContentView,然后我发现只能捕获可见的视图.
无论如何,任何人都可以告诉我如何捕获整页内容的截图WKWebView?