iOS6新特征:UIActivityViewController使用示例

2. UIActivityViewController使用示例

UIActivityViewController ,出现于 iOS 6,在应用里为分享和操作数据提供了一个统一的服务接口。


下面大致介绍一下 UIActivityViewController的使用
2、如何使用
1)定义ActivityItems,并初始化,这里我们给ActivityItems初始化了一个字符串,一个图片,还有一个URL。

2)初始化一个UIActivityViewController,使用第一步骤定义的ActivityItems进行初始化,这个参数是必须要有的,不能为空。而第二个参数applicationActivities可以为nil,详细内容可以参考 iOS6新特征:UIActivityViewController类参考

3)给activityVC的属性completionHandler写一个block。用以UIActivityViewController执行结束后,被调用,做一些后续处理。

4)以模态的方式展现activityVC。

看下面给出的关键代码

本帖隐藏的内容
01// 测试UIActivityViewController
02- (IBAction)ActivityVCAction:(id)sender
03{
04    // 首先初始化activityItems参数
05    NSArray *activityItems = [[NSArray alloc]initWithObjects:
06                              @\\"移动开发技术尽在DevDiv移动技术开发社区\\",
07                              @\\"http://www.DevDiv.com\\",
08                              [UIImage imageNamed:@\\"background1.png\\"], nil];
09     
10    // 初始化一个UIActivityViewController
11    UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:Nil];
12     
13    // 写一个bolck,用于completionHandler的初始化
14    UIActivityViewControllerCompletionHandler myBlock = ^(NSString *activityType,BOOL completed) {
15        NSLog(@\\"%@\\", activityType);
16        if(completed) {
17            NSLog(@\\"completed\\");
18        else
19        {
20            NSLog(@\\"cancled\\");
21        }
22        [activityVC dismissViewControllerAnimated:YES completion:Nil];
23    };
24     
25    // 初始化completionHandler,当post结束之后(无论是done还是cancell)该blog都会被调用
26    activityVC.completionHandler = myBlock;
27     
28    // 以模态方式展现出UIActivityViewController
29    [self presentViewController:activityVC animated:YES completion:Nil];
30}


++++++++++++++++++++++++
简单使用上面足够,下面了解更多:
默认情况下,UIActivityViewController 将显示所有可用于所提供内容的服务,但我们也可以排除特定的 Activity 类型。
      
      
  1. activityViewController.excludedActivityTypes = @[UIActivityTypePostToFacebook]; 
 
Activity 类型又分为“操作”和“分享”两大类:
UIActivityCategoryAction
1. UIActivityTypePrint
2. UIActivityTypeCopyToPasteboard
3. UIActivityTypeAssignToContact
4. UIActivityTypeSaveToCameraRoll
5. UIActivityTypeAddToReadingList
6. UIActivityTypeAirDrop
 
UIActivityCategoryShare
1. UIActivityTypeMessage
2. UIActivityTypeMail
3. UIActivityTypePostToFacebook
4. UIActivityTypePostToTwitter
5. UIActivityTypePostToFlickr
6. UIActivityTypePostToVimeo
7. UIActivityTypePostToTencentWeibo
8. UIActivityTypePostToWeibo
 
每个 Activity 类型都支持好多种不同的数据类型。例如,一条 Tweet 可能由 NSString 以及一个附加的图像 和/或 URL 所组成。
 
不同的 Activity 类型所支持的数据类型 





参考: http://www.cocoachina.com/industry/20140425/8233.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UIActivityViewControlleriOS 中一个非常方便的系统原生分享组件,可以让用户快速、简单地分享内容到短信、邮件、社交平台等。 使用 UIActivityViewController 非常简单,只需要以下几步: 1. 创建分享内容 创建一个 UIActivityViewController 需要先准备好分享的内容。比如,如果要分享一张图片,则需要先将图片转换为 NSData 类型。 ``` let image = UIImage(named: "example") let imageData = UIImageJPEGRepresentation(image!, 0.5) ``` 2. 创建 UIActivityViewController 创建 UIActivityViewController 并将分享内容传入,同时也可以设置一些属性,比如分享时显示的标题、分享完成时的回调等。 ``` let activityViewController = UIActivityViewController(activityItems: [imageData!], applicationActivities: nil) activityViewController.title = "分享图片" activityViewController.completionWithItemsHandler = {(activityType, completed, returnedItems, error) in // 分享完成后的回调 } ``` 3. 显示 UIActivityViewController 最后,将 UIActivityViewController 显示出来即可。 ``` present(activityViewController, animated: true, completion: nil) ``` 这样,就可以让用户方便地分享内容了。UIActivityViewController 支持的分享平台非常多,包括但不限于短信、邮件、社交平台、打印、复制等。 需要注意的是,如果要分享的内容比较大,比如视频文件,建议使用 UIDocumentInteractionController 来实现分享功能,否则可能会出现内存问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值