UIActivity.h

作者: zhYx_ | 来源:发表于2019-01-25 13:55 被阅读8次
    
    #if USE_UIKIT_PUBLIC_HEADERS || !__has_include(<UIKitCore/UIActivity.h>)
    //
    //  UIActivity.h
    //  UIKit
    //
    //  Copyright 2012-2018 Apple Inc. All rights reserved.
    //
    #import <Foundation/Foundation.h>
    #import <UIKit/UIKitDefines.h>
    NS_ASSUME_NONNULL_BEGIN
    
    
    
    
    
    @class UIImage, UIViewController;
    
    /* 活动类型 <枚举> */
    #if UIKIT_STRING_ENUMS
    typedef NSString * UIActivityType NS_TYPED_EXTENSIBLE_ENUM;
    #else
    typedef NSString * UIActivityType;
    #endif
    UIKIT_EXTERN UIActivityType const UIActivityTypePostToFacebook     NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;// 分享到脸书
    UIKIT_EXTERN UIActivityType const UIActivityTypePostToTwitter      NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;// 分享到推特
    UIKIT_EXTERN UIActivityType const UIActivityTypePostToWeibo        NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;// 分享到新浪微博
    UIKIT_EXTERN UIActivityType const UIActivityTypeMessage            NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;// 发送信息
    UIKIT_EXTERN UIActivityType const UIActivityTypeMail               NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;// 发送邮件
    UIKIT_EXTERN UIActivityType const UIActivityTypePrint              NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;// 打印
    UIKIT_EXTERN UIActivityType const UIActivityTypeCopyToPasteboard   NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;// 复制
    UIKIT_EXTERN UIActivityType const UIActivityTypeAssignToContact    NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;// 添加到通讯录
    UIKIT_EXTERN UIActivityType const UIActivityTypeSaveToCameraRoll   NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED;// 储存到相册
    UIKIT_EXTERN UIActivityType const UIActivityTypeAddToReadingList   NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;// 添加到阅读书签
    UIKIT_EXTERN UIActivityType const UIActivityTypePostToFlickr       NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;// 分享到Flickr
    UIKIT_EXTERN UIActivityType const UIActivityTypePostToVimeo        NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;// 分享到Vimeo
    UIKIT_EXTERN UIActivityType const UIActivityTypePostToTencentWeibo NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;// 分享到腾讯微博
    UIKIT_EXTERN UIActivityType const UIActivityTypeAirDrop            NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;// 发送隔空投送
    UIKIT_EXTERN UIActivityType const UIActivityTypeOpenInIBooks       NS_AVAILABLE_IOS(9_0) __TVOS_PROHIBITED;// 添加到IBooks
    UIKIT_EXTERN UIActivityType const UIActivityTypeMarkupAsPDF        NS_AVAILABLE_IOS(11_0) __TVOS_PROHIBITED;// 标记成PDF
    
    /* 行为分类 <枚举> */
    typedef NS_ENUM(NSInteger, UIActivityCategory) {
        UIActivityCategoryAction,   // 行为(在最下边一行展示,如复制/粘贴/打印)
        UIActivityCategoryShare,    // 分享(在隔空投送下边一行展示,如分享到微博/脸书,发送信息/邮件)
    } NS_ENUM_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;
    
    
    
    
    
    #pragma mark - 活动 Class
    #pragma mark -
    /*
     - UIActivity
        分享控制器的活动事件类(自带一些标准事件);一般用法为继承它,自定义一些分享事件
     - 概述:
        UIActivity需要与UIActivityViewController一起使用
        系统标准的UIActivity:标准活动视图控制器支持通过电子邮件发送数据,将项目发布到用户的某个社交媒体帐户等
        自定义UIActivity:同时获取用户需要传递的行为或数据,对该数据执行某些操作,并返回结果(例如:社交媒体服务可以采用向其提供的任何文本/图像或其他内容并将它们发布到社交帐户)
     - 方法使用:
        如果-canPerformWithActivityItems:返回YES,则活动的UIActivityViewController对象会向用户显示此分享窗口.
        用户点击某个行为时,UIActivityViewController调用对应行为的-prepareWithActivityItems:方法
        然后只调用以下方法之一:
            1.没有视图控制器执行 -performActivity (需手动执行与该服务关联的任务并显示)
            2.有视图控制器执行 -activityViewController (不需要手动弹出,在收集所需的输入后,会自动启动与服务关联的任务)
     */
    NS_CLASS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED @interface UIActivity : NSObject
    // 活动整体分类类型(默认:UIActivityCategoryAction)
    #if UIKIT_DEFINE_AS_PROPERTIES
    @property(class, nonatomic, readonly) UIActivityCategory activityCategory NS_AVAILABLE_IOS(7_0);
    #else
    + (UIActivityCategory)activityCategory NS_AVAILABLE_IOS(7_0);
    #endif
    
    #if UIKIT_DEFINE_AS_PROPERTIES
    // 具体活动类型(默认:nil)
    @property(nonatomic, readonly, nullable) UIActivityType activityType;
    // UIActivity按钮的标题(默认:nil)
    @property(nonatomic, readonly, nullable) NSString *activityTitle;
    // UIActivity按钮的图片(默认:nil)
    @property(nonatomic, readonly, nullable) UIImage *activityImage;
    #else
    - (nullable UIActivityType)activityType;
    - (nullable NSString *)activityTitle;
    - (nullable UIImage *)activityImage;
    #endif
    
    /**
     能否执行一组行为(默认:NO)
    
     @param activityItems 要执行的行为项
     @return 是/否
     */
    - (BOOL)canPerformWithActivityItems:(NSArray *)activityItems;
    /**
     准备执行一组行为(默认:不做任何事)
    
     @param activityItems 要执行的行为项
     */
    - (void)prepareWithActivityItems:(NSArray *)activityItems;
    
    // 获取行为视图控制器(非空)
    #if UIKIT_DEFINE_AS_PROPERTIES
    @property(nonatomic, readonly, nullable) UIViewController *activityViewController;
    #else
    - (nullable UIViewController *)activityViewController;
    #endif
    
    /**
     开始执行行为(如果没有视图控制器,则调用此方法.完成后调用-activityDidFinish;默认调用[self activityDidFinish:NO])
     */
    - (void)performActivity;
    /**
     行为是否结束(行为结束时自动调用此方法)
    
     @param completed 是/否
     */
    - (void)activityDidFinish:(BOOL)completed;
    @end
    
    
    
    
    
    NS_ASSUME_NONNULL_END
    #else
    #import <UIKitCore/UIActivity.h>
    #endif
    

    相关文章

      网友评论

        本文标题:UIActivity.h

        本文链接:https://www.haomeiwen.com/subject/bkvmjqtx.html