Are you using iOS 7? If so, are you using the new screenShot api's? If so, have you set afterScreenUpdates to YES?
- (UIImage *) getScreenShotForView:(UIView *)view {
UIGraphicsBeginImageContext(view.bounds.size);
// I think this is what was used pre iOS 7.x
//[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
// iOS 7.x -->
[view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES]; // Set To YES
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
Update
Based on @LeoNatan's comment, you can use your window
- (UIImage *) getScreenShotForView:(UIView *)view {
UIGraphicsBeginImageContext(view.bounds.size);
// iOS 7.x -->
[[[[UIApplication sharedApplication] windows] objectAtIndex:0] drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES]; // Set To YES
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}