美文网首页
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