UIDataSourceTranslating.h
2019-06-20 本文已影响0人
zhYx_
#if USE_UIKIT_PUBLIC_HEADERS || !__has_include(<UIKitCore/UIDataSourceTranslating.h>)
//
// UIDataSourceTranslating.h
// UIKit
//
// Copyright © 2017-�2018 Apple Inc. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
///!!!: 数据源对象的高级界面 <协议>
/*
概述:
- UITableView和UICollectionView使用此协议与拖放操作结合使用
- 数据源对象中的Cell拖放后位置数据有时与展示的实际位置数据不匹配,使用此协议可以起到位置与数据的映射
*/
API_AVAILABLE(ios(11.0), tvos(11.0))
@protocol UIDataSourceTranslating <NSObject>
// 数据源中的组索引转成布局中的组索引
- (NSInteger)presentationSectionIndexForDataSourceSectionIndex:(NSInteger)dataSourceSectionIndex;
// 布局中的组索引转成数据源中的组索引
- (NSInteger)dataSourceSectionIndexForPresentationSectionIndex:(NSInteger)presentationSectionIndex;
// 数据源中的索引转成布局中的索引
- (nullable NSIndexPath *)presentationIndexPathForDataSourceIndexPath:(nullable NSIndexPath *)dataSourceIndexPath;
// 布局中的索引转成数据源中的索引
- (nullable NSIndexPath *)dataSourceIndexPathForPresentationIndexPath:(nullable NSIndexPath *)presentationIndexPath;
// 索引转换时的回调(可在回调中修改未提交的转换数据)
- (void)performUsingPresentationValues:(void (NS_NOESCAPE ^)(void))actionsToTranslate NS_SWIFT_NAME(performUsingPresentationValues(_:));
@end
NS_ASSUME_NONNULL_END
#else
#import <UIKitCore/UIDataSourceTranslating.h>
#endif