Q:

ios capture screenshot, but there is a blank(transparent) on the top, it is the status-bar

screenshot, 960*640, but with 44pix transparent status-bar on the top of the picture. 
How to capture a picture with 916pix height?  I do not need that blank bar on the top. 
Here is my code:
-(void)takeScreenShot{
    UIWindow *window = [UIApplication sharedApplication].keyWindow;
    CGSize imageSize = [[UIScreen mainScreen] bounds].size;
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]){
        UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0f);
    }else{
        UIGraphicsBeginImageContext(imageSize);
    }
    [window.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    NSData * data = UIImagePNGRepresentation(image);
    //
    NSString *documentsDirectory= [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
    NSString *filePath= [documentsDirectory stringByAppendingPathComponent:@"SYS_screen_shot@2x.png"];
    //
    [data writeToFile:filePath atomically:YES];
}

A:

You have access to the application frame with this
[[UIScreen mainScreen] applicationFrame]
That will give you the position of your application on the screen

[window.rootViewController.view.layer renderInContext:UIGraphicsGetCurrentContext()];
If what you want is the root view of your application, you should take that view to renderInContext.  I just tested it and it work.