UIImage的一个扩展,调用方法直接指定View生成的一个UIImage类型的对象,可以保存到相册,或者作为别用
新建一个UIImage的 Category
头文件代码
#import <UIKit/UIKit.h>
@interface UIImage (TY_Snap)
/**
* view截屏(快照)
*
* @param view 截屏的view
*/
+ (UIImage *)snapshotWithView:(UIView *)view;
/**
* view截屏(快照)
*
* @param view 截屏的view
* @param snapSize 截屏大小
*/
+ (UIImage *)snapshotWithView:(UIView *)view size:(CGSize)snapSize;
@end
.m文代码
#import "UIImage+Snap.h"
@implementation UIImage (TY_Snap)
+ (UIImage *)snapshotWithView:(UIView *)view
{
return [self snapshotWithView:view size:view.bounds.size];
}
+ (UIImage *)snapshotWithView:(UIView *)view size:(CGSize)snapSize
{
UIGraphicsBeginImageContextWithOptions(snapSize, NO, 0);
[view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
@end
在VC里导入这个头文件
#import "UIImage+Snap.h"
调用方法获取对象View生成的UIImage对象
UIImage *image = [UIImage snapshotWithView:self.view];
可以选择保存到相册
- (void)saveImageToPhotos:(UIImage*)savedImage
{
UIImageWriteToSavedPhotosAlbum(savedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL);
}
- (void)image: (UIImage *) image didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo
{
NSString *msg = nil ;
if(error != NULL){
msg = @"保存图片失败" ;
}else{
msg = @"保存图片成功" ;
}
NSLog(@"%@",msg);
}