Why does my programmatically created screenshot look so bad on iOS 7? Why does my programmatically created screenshot look so bad on iOS 7? xcode xcode

Why does my programmatically created screenshot look so bad on iOS 7?


New API has been added since iOS 7, that should provide efficient way of getting snapshot

  • snapshotViewAfterScreenUpdates: renders the view into a UIView with unmodifiable content

  • resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets : same thing, but with resizable insets

  • drawViewHierarchyInRect:afterScreenUpdates: : same thing if you need all subviews to be drawn too (like labels, buttons...)

You can use the UIView returned for any UI effect, or render in into an image like you did if you need to export.

I don't know how good this new method performs VS the one you provided (although I remember Apple engineers saying this new API was more efficient)


you can try this

- (UIImage *) screenshot {    UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, [UIScreen mainScreen].scale);    [self.view drawViewHierarchyInRect:self.view.bounds afterScreenUpdates:YES];    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();    UIGraphicsEndImageContext();    return image;}


in iOS 8 : this is how i am doing to get ScreenShot

  1. just added one UIImageView and Method to take screenshot in .h file

@property (weak, nonatomic) IBOutlet UIImageView *imageView;

 -(IBAction)takeSnapShot:(id)sender;

2 added code snip for taking screen shot and set on UIImageView in .m file

- (IBAction)takeSnapShot:(id)sender{    UIGraphicsBeginImageContext(self.view.bounds.size);    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];    UIImage *snapShotImage = UIGraphicsGetImageFromCurrentImageContext();    UIGraphicsEndImageContext();    imageView.image = snapShotImage;}
  1. below is the output i got.

enter image description here