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;