iOS的截屏功能实现

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

//.h文件
#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  

方法的调用

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: (voidvoid *) contextInfo  
{  
    NSString *msg = nil ;  

    if(error != NULL){  

        msg = @"保存图片失败" ;  

    }else{  

        msg = @"保存图片成功" ;  

    }  
}  

你可能感兴趣的:(自定义技巧)