iOS截屏保存至相册

时间:2023-11-29 08:52:02

#pragma mark 截屏并保存至相册

-(void)screenShotsComplete:(void(^)(UIImage * img)) complete

{

CGSize imageSize = [[UIScreen mainScreen] bounds].size;

UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);

CGContextRef context = UIGraphicsGetCurrentContext();

for (UIWindow * window in [[UIApplication sharedApplication] windows]) {

if (![window respondsToSelector:@selector(screen)] || [window screen] == [UIScreen mainScreen]) {

CGContextSaveGState(context);

CGContextTranslateCTM(context, [window center].x, [window center].y);

CGContextConcatCTM(context, [window transform]);

CGContextTranslateCTM(context, -[window bounds].size.width*[[window layer] anchorPoint].x, -[window bounds].size.height*[[window layer] anchorPoint].y);

[[window layer] renderInContext:context];

CGContextRestoreGState(context);

}

}

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);

NSLog(@"Suceeded!");

if(complete){

complete(image);

}

}

//点击保存至相册后,出现动画效果

[self screenShotsComplete:^(UIImage *img) {

UIImageView * imgView=[[UIImageView alloc]initWithFrame:weakSelf.view.bounds];

imgView.image=img;

[weakSelf.view addSubview:imgView];

CGPoint center=CGPointMake(weakSelf.view.center.x, weakSelf.view.center.y-64);

[UIImageView animateWithDuration:1.0f animations:^{

imgView.width-=imgView.width;

imgView.height-=imgView.height;

imgView.alpha=0.0f;

imgView.center=center;

} completion:^(BOOL finished) {

[imgView removeFromSuperview];

btn.enabled=YES;

[HintInfoView showOnView:weakSelf.view hintTitle:@"保存成功!" hintFont:weakSelf.commonTitleFont];

}];

}];

};