Vous devez saisir la clé de fenêtre pour une capture d'écran ou une UIView. Vous pouvez le faire dans la Rétine de la Résolution à l'aide de UIGraphicsBeginImageContextWithOptions et définir son paramètre d'échelle 0.0 f. Il capte toujours en résolution native (retina pour iPhone 4 et versions ultérieures).
Celui-ci fait un plein écran capture d'écran (touche de la fenêtre)
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
CGRect rect = [keyWindow bounds];
UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[keyWindow.layer renderInContext:context];
UIImage *capturedScreen = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Ce code capturer une UIView en résolution native
CGRect rect = [captureView bounds];
UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[captureView.layer renderInContext:context];
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Cela permet d'économiser le UIImage au format jpg avec 95% de la qualité dans l'application du document dossier si vous avez besoin de le faire.
NSString *imagePath = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/capturedImage.jpg"]];
[UIImageJPEGRepresentation(capturedImage, 0.95) writeToFile:imagePath atomically:YES];