IOS截屏功能的实现

来源:互联网 发布:笛子模拟软件免费版 编辑:程序博客网 时间:2024/06/10 21:31

IOS截屏功能的实现

实现方法一、

#pragma mark - 截屏按钮事件

- (IBAction)screenShotAction:(UIButton *)sender {

    

     //_screenImg为一个UIImageView控件

    _screenImg.image =[self screenView:self.view.window];//传值self.view.window就是截整个眼睛可以看到的界面

   // _screenImg.image =[self screenView:self.view];//传值self.view 不包含导航栏和TabBar

}


#pragma mark - 截屏功能的实现

- (UIImage*)screenView:(UIView *)view{

    CGRect rect = view.frame;

    UIGraphicsBeginImageContext(rect.size);

    CGContextRef context = UIGraphicsGetCurrentContext();

   [view.layer renderInContext:context];//如果传值self.view.window,整个界面都在截图中;如果传值self.view,截图无导航栏,无TabBar

    //[self.navigationController.view.layer renderInContext:context];//如果传值self.view,注释上句,开启此句截图有导航栏,无TabBar

    

    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return img;

}


实现方法二、

#pragma mark - 全屏截屏功能的实现

- (UIImage *)getScreenshot {

    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, nil, nil, nil);

    

    return image;

}



0 0
原创粉丝点击