Вам необходимо создать растровый контекст размера вашего экрана и использовать
[self.view.layer renderInContext:c]
, чтобы скопировать в него свое представление.Как только это будет сделано, вы можете использовать
CGBitmapContextCreateImage(c)
для создания CGImage из вашего контекста.
Разработка:
CGSize screenSize = [[UIScreen mainScreen] applicationFrame].size;
CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB();
CGContextRef ctx = CGBitmapContextCreate(nil, screenSize.width, screenSize.height, 8, 4*(int)screenSize.width, colorSpaceRef, kCGImageAlphaPremultipliedLast);
CGContextTranslateCTM(ctx, 0.0, screenSize.height);
CGContextScaleCTM(ctx, 1.0, -1.0);
[(CALayer*)self.view.layer renderInContext:ctx];
CGImageRef cgImage = CGBitmapContextCreateImage(ctx);
UIImage *image = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
CGContextRelease(ctx);
[UIImageJPEGRepresentation(image, 1.0) writeToFile:@"screen.jpg" atomically:NO];
Обратите внимание, что если вы запустите свой код вВ ответ на щелчок по кнопке UIB ваше изображение будет отображать нажатие этой кнопки.