美文网首页
iOS屏幕截屏

iOS屏幕截屏

作者: 开心的小娇 | 来源:发表于2019-04-02 10:55 被阅读0次

    + (UIImage*)screenShot {

        CGSizeimageSize =CGSizeZero;

        UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;

        if (UIInterfaceOrientationIsPortrait(orientation)) {

            imageSize = [UIScreen mainScreen].bounds.size;

        }else{

            imageSize =CGSizeMake([UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width);

        }

        UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);

        CGContextRef context = UIGraphicsGetCurrentContext();

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

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

            if (orientation == UIInterfaceOrientationLandscapeLeft) {

                CGContextRotateCTM(context,M_PI_2);

                CGContextTranslateCTM(context,0, -imageSize.width);

            }else if (orientation == UIInterfaceOrientationLandscapeRight) {

                CGContextRotateCTM(context, -M_PI_2);

                CGContextTranslateCTM(context, -imageSize.height,0);

            }else if (orientation == UIInterfaceOrientationPortraitUpsideDown) {

                CGContextRotateCTM(context,M_PI);

                CGContextTranslateCTM(context, -imageSize.width, -imageSize.height);

            }

            [window.layerrenderInContext:context];

            CGContextRestoreGState(context);

        }

        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

        UIGraphicsEndImageContext();

        returnimage;

    }

    相关文章

      网友评论

          本文标题:iOS屏幕截屏

          本文链接:https://www.haomeiwen.com/subject/paywbqtx.html