首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >定制UIActivityViewController

定制UIActivityViewController
EN

Stack Overflow用户
提问于 2013-08-09 13:13:52
回答 1查看 2.5K关注 0票数 3

我试图将截图附加到UIActivityViewController中的邮件中,而不将截图保存到我的库中。到目前为止,这是我的代码:

代码语言:javascript
复制
-(IBAction)ActivityController:(id)sender {{



    NSString *shareString = @"";
    UIImage *shareImage = [UIImage imageNamed:@""];


    NSURL *shareUrl = [NSURL URLWithString:@""];
    NSArray *activityItems = [NSArray arrayWithObjects:shareString,shareImage, shareUrl, nil];
    UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
    activityViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    [self presentViewController:activityViewController animated:YES completion:nil];

    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"];

没有屏幕截图附在电子邮件。

以及如何在UIActivityViewcontroller中按下“取消”按钮时创建操作

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-09 13:32:50

UIActivityViewController帮助您轻松地从iOS6中共享数据。只需调用它,输入数据并单击要共享的数据。别写在MFMailComposeViewController里。

这是在iPad和iPhone中工作的通用代码示例

代码语言:javascript
复制
-(IBAction)actionButton:(id)sender {
  //Popover for iPad
    //if (self.popover) {
    //    if ([self.popover isPopoverVisible]) {
      //      return;
      //  } else {
       //     [self.popover dismissPopoverAnimated:YES];
      //      self.popover = nil;
      //  }
   // }

    UIGraphicsBeginImageContext(self.view.bounds.size);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    NSString *shareText = @"Share Text";
    NSURL *shareURL = [NSURL URLWithString:@"http://shareURL.com"];

    /* iOS 6 sharing, */
    UIActivity *activity = [[UIActivity alloc] init];

    NSArray *activityItems = @[image, shareText, shareURL];
    NSArray *applicationActivities = @[activity];
    NSArray *excludeActivities = @[];

    UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];
    activityController.excludedActivityTypes = excludeActivities;

    // switch for iPhone and iPad.
   // if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
     //   self.popover = [[UIPopoverController alloc] initWithContentViewController:activityController];
      //  self.popover.delegate = self;
       // [self.popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
   // } else {
        [self presentViewController:activityController animated:YES completion:^{
            NSLog(@"Activity complete");
        }];
   // }


}

编辑如果您想知道何时单击“取消”按钮,则需要修改presentViewController中的一些内容

代码语言:javascript
复制
    [self presentViewController:activityController animated:YES completion:nil];
    [activityController setCompletionHandler:^(NSString *act, BOOL done)
     {
         if (!act) {
             NSLog(@"Cancel");
         } 
     }];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18147506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档