我正在 try catch WKWebView的屏幕截图,但是我的方法无法正常工作,它返回纯色,就好像图层树为空,而它似乎可以在其他 View 上工作。
- (UIImage *)screenshot
{
UIImage *screenshot;
UIGraphicsBeginImageContext(self.frame.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return screenshot;
}
最佳答案
这个Stackoverflow answer在iOS 8上使用WKWebView为我解决了该问题,其中[view snapshotViewAfterScreenUpdates:]
和[view.layer renderInContext:]
返回纯黑色或白色:
UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, 0);
[view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES];
UIImage* uiImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();