< UIKit >

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

上一篇下一篇

猜你喜欢

热点阅读