2012-03-03 105 views
2

我正在繪製應用程序,我必須通過電子郵件發送當前繪圖。我設法獲得當前屏幕的屏幕截圖。但是,如何通過MFMailComposeViewControll電子郵件發送該圖像?這裏是我用來獲取屏幕上的代碼出手iOs將我的當前屏幕添加到電子郵件

UIGraphicsBeginImageContext(self.view.bounds.size); 
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *currentScreen = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

回答

6
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc] init]; 
controller.mailComposeDelegate = self; 
[controller setSubject:AppName]; 

NSArray *bccRecipients = [NSArray arrayWithObject:@"[email protected]"]; 
[controller setBccRecipients:bccRecipients]; 

UIGraphicsBeginImageContext(self.view.bounds.size); 
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *currentScreen = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 


NSData *imageData = UIImagePNGRepresentation(currentScreen); 
[controller addAttachmentData:imageData mimeType:@"image/png" fileName:@"aaa.png"]; 


[controller setMessageBody:@"body" isHTML:YES]; 

[self presentModalViewController:controller animated:YES]; 

[controller release]; 
4

MFMailComposeViewController-addAttachmentData:mimeType:fileName:方法。您可以使用UIImagePNGRepresentation將圖像轉換爲NSData,將image/png設置爲mimeType,然後將其設置爲fileName。然後你可以出示MFMailComposeViewController

Document reference

+0

感謝名單。那些工作很有魅力 – BigAppleBump 2012-03-03 17:49:04