NSArray *arr = [self.webview subviews];
UIScrollView *scrollview = [arr objectAtIndex:0];//得到webview子视图里的scrollview视图
CGSize sixzevid=scrollview.contentSize;
CGPoint oriOffsetPoint = scrollview.contentOffset;

UIGraphicsBeginImageContext(sixzevid);

CGFloat height = scrollview.contentSize.height;
CGFloat width = scrollview.contentSize.width;
//320为当前窗口宽度,460为当前窗口高度
NSInteger windex = floor(width/320);
NSInteger wremainder = width-windex*320;
NSInteger hindex = height/460;
NSInteger hremainder = height – hindex*460;
for (int i=0; i<windex; i++) {
for (int j=0; j<hindex; j++) {
[scrollview setContentOffset:CGPointMake(i*320,j*460)];

UIImage *image = [self makeImageWithSize:CGSizeMake(320, 460)];

[image drawInRect:CGRectMake(i*320,j*460, image.size.width, image.size.height)];
}

}

if (wremainder>0) {
for (int j=0; j<hindex; j++) {
[scrollview setContentOffset:CGPointMake(windex*320,j*460)];

UIImage *image = [self makeImageWithSize:CGSizeMake(wremainder, 460)];

[image drawInRect:CGRectMake(windex*320,j*460, image.size.width, image.size.height)];
}
}

if (hremainder>0) {
for (int i=0; i<windex; i++) {
[scrollview setContentOffset:CGPointMake(i*320,hindex*460)];

UIImage *image = [self makeImageWithSize:CGSizeMake(320 , hremainder )];

[image drawInRect:CGRectMake(i*320,hindex*460, image.size.width, image.size.height)];
}
}

if ( wremainder>0 && hremainder >0) {
[scrollview setContentOffset:CGPointMake(windex*320,hindex*460)];

UIImage *image = [self makeImageWithSize:CGSizeMake(wremainder , hremainder )];

[image drawInRect:CGRectMake(windex*320,hindex*460, image.size.width, image.size.height)];
}

UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

NSData *imageData = UIImagePNGRepresentation(viewImage);

scrollview.contentOffset = oriOffsetPoint;

 

UIImageWriteToSavedPhotosAlbum( viewImage, self, nil , nil ) ;//保存到相册

 

 

更简单方法:

NSArray *arr = [self.searchWebView subviews];
UIScrollView *scrollview = [arr objectAtIndex:0];
CGSize sixzevid=scrollview.contentSize;
CGPoint oriOffsetPoint = scrollview.contentOffset;
CGRect oriFrame = self.searchWebView.frame;
self.searchWebView.frame = CGRectMake(0, 0, sixzevid.width, sixzevid.height);
UIGraphicsBeginImageContext(sixzevid);
[self.searchWebView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *imageData = UIImagePNGRepresentation(viewImage);
UIImageWriteToSavedPhotosAlbum( viewImage, self, nil , nil ) ;
self.searchWebView.frame = oriFrame;
scrollview.contentOffset = oriOffsetPoint;