屏幕截图

1.首先创建一个Image类,.h文件复制

+ (UIImage *)captureWithView:(UIView *)view;

2.在.m文件中实现方法;

+ (UIImage *)captureWithView:(UIView *)view { // 1.开启上下文 UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, 0.0); // 2.将控制器view的layer渲染到上下文  [view.layer renderInContext:UIGraphicsGetCurrentContext()]; // 3.取出图片 UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); // 4.结束上下文  UIGraphicsEndImageContext(); return newImage; }

然后在要调用的controller中调用此方法 

- (IBAction)clip {
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        // 1.捕捉
        UIImage *newImage = [UIImage captureWithView:self.view];
        
        // 2.写文件
        NSData *data = UIImagePNGRepresentation(newImage);
        NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"new.png"];
        [data writeToFile:path atomically:YES];
    });
}
原文地址:https://www.cnblogs.com/h-tao/p/5112702.html