Quartz2D截屏

时间:2023-12-22 22:22:32
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor=[UIColor yellowColor];
    UIButton *btn=[UIButton buttonWithType:UIButtonTypeSystem];
    [btn setTitle:@"按钮" forState:UIControlStateNormal];
    btn.frame=CGRectMake(30, 100, 40, 20);
    [btn setTintColor:[UIColor blackColor]];
     [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(btnclick:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];

}
-(void)btnclick:(id)sender
{
    //延迟2秒执行
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int16_t)2*NSEC_PER_SEC), dispatch_get_main_queue(), ^{
        //UIGraphicsBeginImageContext参考 http://blog.sina.com.cn/s/blog_5fb39f9101017n1v.html
        UIGraphicsBeginImageContext(self.view.frame.size);
        [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
        UIImage *img=UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        //保存到相册
        UIImageWriteToSavedPhotosAlbum(img, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
        //保存到指定路径中
//        NSString *path = [[NSHomeDirectory()stringByAppendingPathComponent:@"Documents"]stringByAppendingPathComponent:@"image.png"];
//        NSLog(@"%@",path);
//        NSData *data=UIImagePNGRepresentation(img);
//        [data writeToFile:path atomically:YES];
    });
}
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
    if (error==nil) {
        NSLog(@"ok");
    }
    else
    {
        NSLog(@"error");
        NSLog(@"%@",error);
    }
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end