我尝试使用
将屏幕外WKWebView
渲染到图像中
func cacheDisplayInRect(rect: NSRect, toBitmapImageRep bitmapImageRep: NSBitmapImageRep)
func drawLayer(layer: CALayer, inContext ctx: CGContext)
没有成功。生成的图像始终为空(白色或透明)。有没有人设法在优胜美地上做到这一点?
答案 0 :(得分:1)
您可以使用drawViewHierarchyInRect执行此操作:其他方法似乎都不起作用,请按以下方式使用:
UIGraphicsBeginImageContextWithOptions(newRect.size, YES, 0);
BOOL ok = [view drawViewHierarchyInRect:newRect afterScreenUpdates:YES];
if (!ok) {
NSLog(@"Problem with drawView...");
}
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
我在iOS中做同样的事情,但不幸的是这个方法很慢,也必须在主线程中运行,只有在afterScreenUpdates设置为yes时才有效。请参阅此答案:How can I take a snapshot of a UIView that isn't rendered?
如果网页的任何方面都需要重新绘制,我也无法告诉我们。