Search code examples
iosobjective-cuiviewscreenshot

How Do I Take a Screen Shot of a UIView?


I am wondering how my iPhone app can take a screen shot of a specific UIView as a UIImage.

I tried this code but all I get is a blank image.

UIGraphicsBeginImageContext(CGSizeMake(320,480));
CGContextRef context = UIGraphicsGetCurrentContext();
[myUIView.layer drawInContext:context];
UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

myUIView has dimensions 320x480 an it has some sub-views. What is the correct way to do this?


Solution

  • I think you may want renderInContext, not drawInContext. drawInContext is more a method you would override...

    Note that it may not work in all views, specifically a year or so ago when I tried to use this with the live camera view it did not work.