zoukankan      html  css  js  c++  java
  • UIActivityViewController 系统社交化 共享

    1.UIActivityViewController是继承自UIViewController,是拥有VC的特性

       a.初始化 init  , initWithActivityItems:applicationActivities

    UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[@"Steve Jobs by waiter lsaacson"] applicationActivities:nil];

      b.点击某个选项之后所能处理的操作 completionWithItemsHandler(Block, >8.0) completionHandler(Block, <8.0)

    activity.completionWithItemsHandler = ^(NSString * __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError){
            NSLog(@"hahahhahaha");
            if (completed) {
                NSLog(@"completed");
            }else{
                NSLog(@"cancel");
            }
        };

     c.剔除不需要的操作项  excludedActivityTypes

    //该属性 表示去掉不想显示的按钮
        activity.excludedActivityTypes = @[UIActivityTypeAirDrop,UIActivityTypeMessage];

     d.展示改控制器     (中间一栏的分享型服务,下面一栏的操作型服务)

    [self.navigationController presentViewController:activity animated:YES completion:nil];
        
         /*
          [self.navigationController pushViewController:activity animated:YES]; 会报错
          Snapshotting a view that has not been rendered results in an empty snapshot.
          Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates.
          */

    2.自定义选项 Item (UIActivity子类即可)

    #import <UIKit/UIKit.h>
    
    @interface HGLActivity : UIActivity
    
    @end
    #import "HGLActivity.h"
     NSString *const UIActivityTypeHGLCustomMine = @"HGLCustomActivityMine";
    @implementation HGLActivity
    
    // default returns nil. subclass may override to return custom activity type that is reported to completion handler
    - (NSString *)activityType{
        return UIActivityTypeHGLCustomMine;
    }
    
    
    // default returns nil. subclass must override and must return non-nil value
    - (NSString *)activityTitle{ //展示的问题介绍
        return NSLocalizedString(@"HGL Custom", @"");
    }
    
    
    // default returns nil. subclass must override and must return non-nil value
    - (UIImage *)activityImage{  //展示的图标
        UIImage *im = [UIImage imageNamed:@"xl"];
        return im;
    }
    
    //可以被响应
    - (BOOL)canPerformWithActivityItems:(NSArray *)activityItems{
        return YES;
    }
    
    - (void)prepareWithActivityItems:(NSArray *)activityItems{
        NSLog(@"prepareWithActivityItems");
        //点击图片之后触发
    //    UIActivityViewController 传递的 activityItems
    }
    
    - (void)performActivity{
        NSLog(@"performActivity");
    //    调用prepareWithActivityItems 之后出发
    }
    
    + (UIActivityCategory)activityCategory{
    //    return UIActivityCategoryAction;  //下面一栏的操作型服务
        return UIActivityCategoryShare ;  //中间一栏的分享型服务
    }
    
    @end

      *初始化是UIActivityViewController 最后一个参数为数组

    UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:@[@"Steve Jobs by waiter lsaacson",[[NSBundle mainBundle] URLForResource:@"hgl29" withExtension:@"txt"]] applicationActivities:@[[[HGLActivity alloc]init]]];

  • 相关阅读:
    可变参数模板的递归解析
    在Ubuntu上安装多个版本的g++ 并进行默认版本切换
    不错的威盾PHP加密专家解密算法
    文章相关性分析详细介绍
    c#连接mysql中文乱码解决方案(MySql.Data.dll)
    firefox用12306Helper 0.2结合ie tab+自动订火车票和完成支付全攻略
    Nutch命令大全
    Jtable利用SetModel进行数据绑定
    在php中使用CKEDITOR在线编辑器
    Nutch1.2搜索引擎使用详解
  • 原文地址:https://www.cnblogs.com/gulong/p/5213110.html
Copyright © 2011-2022 走看看