思路比较简单 1,将webview size放大到合适的大小 2 ,截图 3,还原 原来的大小。
附上代码
{
//保存原有的大小 和 偏移
CGRect originalFrame = webview.frame;
CGPoint originalOffset = webview.scrollView.contentOffset;
//获取合适的大小
CGSize entireSize = [webview sizeThatFits:CGSizeZero];
[webview setFrame: CGRectMake(0, 0, entireSize.width, entireSize.height)];
//截图
UIGraphicsBeginImageContext(entireSize);
CGContextRef context = UIGraphicsGetCurrentContext();
[webview.layer renderInContext:context];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//还原大小 和偏移
[webview setFrame:originalFrame];
webview.scrollView.contentOffset = originalOffset;
//写入文件
NSData * imagedata = UIImagePNGRepresentation(screenshot);
NSString * str = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString * path = [str stringByAppendingPathComponent:@"test.png"];
[imagedata writeToFile:path atomically:YES];
}