#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
网友评论