/**
截取滾動視圖的長圖片(如tableview等)
@param scroller 滾動視圖
@return 截取的長圖
*/
+ (UIImage *)captureImageLonge:(UIScrollView*)scroller{
//(1)截取長圖
UIImage* image = nil;
UIGraphicsBeginImageContextWithOptions(scroller.contentSize, YES, 0.0);
//保存collectionView當前的偏移量
CGPoint savedContentOffset = scroller.contentOffset;
CGRect saveFrame = scroller.frame;
//將collectionView的偏移量設置為(0,0)
scroller.contentOffset = CGPointZero;
scroller.frame = CGRectMake(0, 0, scroller.contentSize.width, scroller.contentSize.height);
//在當前上下文中渲染出collectionView
[scroller.layer renderInContext: UIGraphicsGetCurrentContext()];
//截取當前上下文生成Image
image = UIGraphicsGetImageFromCurrentImageContext();
//恢復collectionView的偏移量
scroller.contentOffset = savedContentOffset;
scroller.frame = saveFrame;
UIGraphicsEndImageContext();
if (image != nil) {
//(2)保存到本地相冊
ALAssetsLibrary * library = [ALAssetsLibrary new];
NSData * data = UIImageJPEGRepresentation(image, 1.0);
[library writeImageDataToSavedPhotosAlbum:data metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
if(!error){
//頂部狀態欄提醒
[JDStatusBarNotification showJDStatusBar:@"截屏成功,已為你保存到相冊"];
}else{
//頂部狀態欄提醒
[JDStatusBarNotification showJDStatusBar:@"抱歉,截屏失敗"];
}
}];
return image;
}else {
return nil;
}
}