iOS 截屏功能

UIImage的一个扩展,调用方法直接指定View生成的一个UIImage类型的对象,可以保存到相册,或者作为别用

新建一个UIImage的 Category

头文件代码

#import 

@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);
}


你可能感兴趣的:(Objective-C)