iPhoneの現在のディスプレイのスクリーンショットを添付して、アプリ内でメールを送信できるようにする必要があります。ボタンをクリックすると、スクリーンショットが添付されたメールが届きますが、写真はカメラに保存されていません。押すボタンは、アクションシートにある必要があります。メールとアクションシートを送信するコードは知っていますが、スクリーンショットを含むアクションシートにメールへのボタンを配置する方法を知る必要があります。
質問する
185 次
1 に答える
1
UIActionSheet *options = [[UIActionSheet alloc] initWithTitle:@"Options" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Email", nil];
[options showInView:self.view];
#pragma mark ActionSheet Delegate
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
switch (buttonIndex)
{
case 0:
{
}
default:
break;
}
}
#pragma mark Email
//Allocating Memory for MailComposer
MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc] init];
mailController.mailComposeDelegate = self;
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData *exportData = UIImageJPEGRepresentation(image ,1.0);
[mailController addAttachmentData:exportData mimeType:@"image/jpeg" fileName:@"Screenshot.jpeg"];
[self presentModalViewController:mailController animated:YES];
編集:
#pragma mark MailComposer Delegate
-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
[self dismissModalViewControllerAnimated:YES];
}
ヘッダー ファイルに MFMailComposeViewControllerDelegate を忘れずに追加してください。
これがお役に立てば幸いです。
于 2013-07-03T14:53:55.730 に答える