#if USE_UIKIT_PUBLIC_HEADERS || !__has_include()
//
// UIDragSession.h
// UIKit
//
// Copyright © 2017-�2018 Apple Inc. All rights reserved.
//
#import
#import
#import
NS_ASSUME_NONNULL_BEGIN
@class UIDragItem, UIView;
/* 拖动/放置会话配置公共类 */
///!!!: 拖/放会话相关配置 <协议>
API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @protocol UIDragDropSession
/// 拖/放会话中的Item(处理Drop时,如果想以线性顺序显示Drop的项目,排序此数组,按顺序放置它们)
@property (nonatomic, readonly) NSArray *items;
// 拖动的Item在指定视图中的位置
- (CGPoint)locationInView:(UIView *)view;
/// 拖动会话是否允许在同一个App中移动Item
@property (nonatomic, readonly) BOOL allowsMoveOperation;
/// 拖动会话是否只能在开始拖动的App中进行
@property (nonatomic, readonly, getter=isRestrictedToDraggingApplication) BOOL restrictedToDraggingApplication;
// typeIdentifiers(类型标识符数组)包含的类型是否有拖动会话中Item的类型
- (BOOL)hasItemsConformingToTypeIdentifiers:(NSArray *)typeIdentifiers;
// 拖动会话中是否至少有一个Item可以创建指定类的实例
- (BOOL)canLoadObjectsOfClass:(Class)aClass;
@end
///!!!: 拖动会话相关配置 <协议>
API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @protocol UIDragSession
/// 为拖动会话添加自定义数据(仅对拖动会话开始的App可见)
@property (nonatomic, strong, nullable) id localContext;
@end
/* 放置会话进度指示器样式 <枚举> */
typedef NS_ENUM(NSUInteger, UIDropSessionProgressIndicatorStyle) {
UIDropSessionProgressIndicatorStyleNone, /// 无进度器样式
UIDropSessionProgressIndicatorStyleDefault, /// 默认进度器样式
} API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos);
///!!!: 放置会话相关配置 <协议>
API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(watchos, tvos) @protocol UIDropSession
/// 与此放置会话对应的拖动会话(如果拖动是在另一个App中启动的,则为nil)
@property (nonatomic, readonly, nullable) id localDragSession;
/// 放置会话进度指示器样式 (如果需要自定义进度指示器,需要设置成StyleNone,来隐藏系统进度UI;默认:UIDropSessionProgressIndicatorStyleDefault)
@property (nonatomic) UIDropSessionProgressIndicatorStyle progressIndicatorStyle;
/**
为会话中的每个拖动项创建并加载aClass的新实例
@param aClass 遵守NSItemProviderReading协议的类
@param completion 加载所有对象后执行的回调
@return 所有对象加载进度的总进度
- 只能在 UIDropInteraction 的 - dropInteraction:performDrop: 代理方法中使用此方法
- 用户将Item放入目标视图后调用此方法
*/
- (NSProgress *)loadObjectsOfClass:(Class)aClass completion:(void(^)(NSArray<__kindof id> *objects))completion;
@end
NS_ASSUME_NONNULL_END
#else
#import
#endif