私は天気予報アプリケーションに取り組んできました。メールで送信する既存の地図を添付/キャプチャする方法を知りたいですか?
任意のアイデアまたは任意の有用なリンク。事前に感謝します。
私は天気予報アプリケーションに取り組んできました。メールで送信する既存の地図を添付/キャプチャする方法を知りたいですか?
任意のアイデアまたは任意の有用なリンク。事前に感謝します。
UIGraphicsGetImageFromCurrentContextを使用してスクリーンショットを撮ることができます。次に、このスクリーンショットを使用して電子メールに添付できます。
- (void)twitterButtonPressed {
NSString *post=[[NSString alloc]initWithFormat:@"I've burned so far %d Calories today - update from iPhone app Run Burn Calories!", self.userActivityTotalCount];
NSURL *url=[NSURL URLWithString:@"www.xxx.uh.edu"];
UIImage *iconImage2=[self imageWithImage:iconImage scaledToSize:CGSizeMake(73.0, 73.0)];
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
{
SLComposeViewController *twitterSheet=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[twitterSheet setInitialText:post];
[twitterSheet addURL:url];
[twitterSheet addImage:iconImage2];
[self presentViewController:twitterSheet animated:YES completion:nil];
SLComposeViewControllerCompletionHandler completion=^(SLComposeViewControllerResult result){
switch (result) {
case SLComposeViewControllerResultDone:
NSLog(@"posted successfully!");
break;
case SLComposeViewControllerResultCancelled:
NSLog(@" could not posted!");
break;
default:
break;
}
[twitterSheet dismissViewControllerAnimated:YES completion:nil];
};
twitterSheet.completionHandler=completion;
}
else{
UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"Sorry" message:@"You can't send a tweet right now, make sure your device has an internet connection and you have at least one Twitter account set up" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}
}
-(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize
{
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
まず、既存の地図がまだこの形式になっていない場合は、画像に変換します。それが済んだら、メールの送信はとても簡単です。これは、メールを送信するためにアプリケーションに持っているコードのスニペットです。
- (void) emailPhoto {
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
// Set the subject of email
[picker setSubject:@"Subject of the Email"];
// Add email addresses
// Notice three sections: "to" "cc" and "bcc"
//[picker setToRecipients:[NSArray arrayWithObjects:@"emailaddress1@domainName.com", @"emailaddress2@domainName.com", nil]];
//[picker setCcRecipients:[NSArray arrayWithObject:@"emailaddress3@domainName.com"]];
//[picker setBccRecipients:[NSArray arrayWithObject:@"emailaddress4@domainName.com"]];
// Fill out the email body text
NSString *emailBody = @"Text to appear in the email.";
// This is an HTML formatted email
[picker setMessageBody:emailBody isHTML:NO];
// Create NSData object as PNG image data from camera image
// This is where I take my self.workingImage object and convert to data object
NSData *data = UIImagePNGRepresentation(self.workingImage);
// Attach image *data* object to the email
[picker addAttachmentData:data mimeType:@"image/png" fileName:@"Image"];
// Show email view
[self presentModalViewController:picker animated:YES];
// Now the user can send or cancel the email as they please
}