Скриншот в приложении и прикрепить к электронной почте без сохранения в библиотеке - PullRequest
4 голосов
/ 23 июня 2011

Я хотел бы знать, какой код использовать, если я хочу, чтобы мое приложение могло сделать снимок экрана, нажав кнопку UI и сразу же всплывающее окно, а Mail создает и отправляет скриншот по электронной почте, не сохраняя его в библиотеке фотографий ?

Большое спасибо!

1 Ответ

12 голосов
/ 23 июня 2011

Вам нужно будет добавить две платформы в ваш проект - QuartzCore и MessageUI, а затем сделать #import <QuartzCore/QuartzCore.h> и #import <MessageUI/MessageUI.h>.

Ваш код нажатия кнопки должен быть как,

- (void)buttonPress:(id)sender
{
    UIGraphicsBeginImageContext(self.view.frame.size);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    NSData * imageData = UIImageJPEGRepresentation(image, 1.0);

    if ( [MFMailComposeViewController canSendMail] ) {
        MFMailComposeViewController * mailComposer = [[[MFMailComposeViewController alloc] init] autorelease];
        mailComposer.delegate = self;
        [mailComposer addAttachmentData:imageData mimeType:@"image/jpeg" fileName:@"attachment.jpg"];

        /* Configure other settings */

        [self presentModalViewController:mailComposer animated:YES];
    }
}
...