Quantcast
Channel: Take screenshot of the window - Stack Overflow
Viewing all articles
Browse latest Browse all 3

Take screenshot of the window

$
0
0

I'm using this method to take a screenshot of my app:

+ (NSData*)TakeScreenshot {    // Create a graphics context with the target size    // On iOS 4 and later, use UIGraphicsBeginImageContextWithOptions to take the scale into consideration    // On iOS prior to 4, fall back to use UIGraphicsBeginImageContext    CGSize imageSize = [[UIScreen mainScreen]bounds].size;    if (NULL != UIGraphicsBeginImageContextWithOptions)        UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);    else        UIGraphicsBeginImageContext(imageSize);    CGContextRef context = UIGraphicsGetCurrentContext();    // Iterate over every window from back to front    for (UIWindow *window in [[UIApplication sharedApplication] windows])     {        if (![window respondsToSelector:@selector(screen)] || [window screen] == [UIScreen mainScreen])        {            // -renderInContext: renders in the coordinate space of the layer,            // so we must first apply the layer's geometry to the graphics context            CGContextSaveGState(context);            // Center the context around the window's anchor point            CGContextTranslateCTM(context, [window center].x, [window center].y);            // Apply the window's transform about the anchor point            CGContextConcatCTM(context, [window transform]);            // Offset by the portion of the bounds left of and above the anchor point            CGContextTranslateCTM(context,                                  -[window bounds].size.width * [[window layer] anchorPoint].x,                                  -[window bounds].size.height * [[window layer] anchorPoint].y);            // Render the layer hierarchy to the current context            [[window layer] renderInContext:context];            // Restore the context            CGContextRestoreGState(context);        }    }    // Retrieve the screenshot image    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();    NSData *imageData = UIImageJPEGRepresentation(image, 100);    UIGraphicsEndImageContext();    return imageData;}

The problem is, I don't see the status bar. I'm getting only a white area without the status bar. How can I take a screenshot of the whole screen, with the status bar and other controls like tabbar, navigation bar and etc.

Thanks in advance!


Viewing all articles
Browse latest Browse all 3




<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>