美文网首页< UIKit >
UIActivityItemProvider.h

UIActivityItemProvider.h

作者: zhYx_ | 来源:发表于2019-01-25 16:46 被阅读3次
    
    #if USE_UIKIT_PUBLIC_HEADERS || !__has_include(<UIKitCore/UIActivityItemProvider.h>)
    //
    //  UIActivityItemProvider.h
    //  UIKit
    //
    //  Copyright 2012-2018 Apple Inc. All rights reserved.
    //
    #import <Foundation/Foundation.h>
    #import <CoreGraphics/CoreGraphics.h>
    #import <UIKit/UIKitDefines.h>
    #import <UIKit/UIActivity.h>
    NS_ASSUME_NONNULL_BEGIN
    
    
    
    
    
    @class UIActivityViewController, UIImage;
    
    ///!!!: 活动项目数据源 <协议>
    @protocol UIActivityItemSource <NSObject>
    @required
    // 设置数据类型.只查询返回类型的类.应配合-itemForActivityType:返回数据
    - (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController;
    // 在选择活动后调用以获取数据.可返回nil
    - (nullable id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(nullable UIActivityType)activityType;
    @optional
    // 如果活动支持主题字段。 iOS 7.0
    - (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(nullable UIActivityType)activityType;
    // 如果它是NSData,则为项目的UTI。 iOS 7.0。 将使用nil活动调用,然后选择活动
    - (NSString *)activityViewController:(UIActivityViewController *)activityViewController dataTypeIdentifierForActivityType:(nullable UIActivityType)activityType;
    // 如果活动支持预览图像。 iOS 7.0
    - (nullable UIImage *)activityViewController:(UIActivityViewController *)activityViewController thumbnailImageForActivityType:(nullable UIActivityType)activityType suggestedSize:(CGSize)size;
    @end
    
    
    
    
    
    #pragma mark - 带附件的活动 Class
    #pragma mark -
    /*
     - UIActivityItemProvider
        分享控制器的活动事件类(带附件);一般继承它,来实现自定义带附件的活动事件
     - 概述
        您可以在要使数据可供分享使用的情况下使用提供程序对象,但是您希望延迟提供该数据,直到实际需要它为止。 例如,您可以使用提供程序对象来表示需要先处理的大型视频文件,然后才能将其共享到用户的社交媒体帐户。
        初始化UIActivityViewController对象时,除了任何其他数据对象外,还可以传递提供程序对象。 当用户选择活动时,活动视图控制器将您的提供者对象(也是操作对象)添加到操作队列,以便它可以开始收集或处理所需的数据。
     
        您必须实例化UIActivityItemProvider并实现其item方法,该方法被调用以生成项目数据。 您实现此方法而不是您将为操作对象实现的常规main方法。 (main方法在执行操作对象时调用item方法。)item方法的实现应该执行创建和返回数据所需的任何工作。
     */
    NS_CLASS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED @interface UIActivityItemProvider : NSOperation <UIActivityItemSource>
    /* 实例化 */
    - (instancetype)init NS_UNAVAILABLE;
    /**
     指定初始化方法(placeHolder是-activityViewControllerPlaceholderItem:的返回值)
    
     @param placeholderItem 候选项
     @return UIActivityItemProvider
     */
    - (instancetype)initWithPlaceholderItem:(id)placeholderItem NS_DESIGNATED_INITIALIZER;
    // 获取候选项
    @property(nullable,nonatomic,strong,readonly) id placeholderItem;
    // 获取活动类型(设置-item是其对应的值,可为nil)
    @property(nullable,nonatomic,copy,readonly) UIActivityType activityType;
    
    // 用户选择活动时调用辅助线程.必须初始化并返回一个非零值.可通过UIActivityItemSource协议设置
    #if UIKIT_DEFINE_AS_PROPERTIES
    @property(nonnull, nonatomic, readonly) id item;
    #else
    - (nonnull id)item;
    #endif
    @end
    
    
    
    
    
    NS_ASSUME_NONNULL_END
    #else
    #import <UIKitCore/UIActivityItemProvider.h>
    #endif
    

    相关文章

      网友评论

        本文标题:UIActivityItemProvider.h

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