From b26337c44930cd1c8166ebba4f7f005f977d60d4 Mon Sep 17 00:00:00 2001 From: Bin Liu Date: Wed, 27 Jan 2016 15:05:56 -0800 Subject: [PATCH] Levi's comments --- AsyncDisplayKit/ASCollectionView.mm | 17 ++++++------ ...SCollectionViewLayoutFacilitatorProtocol.h | 26 +++++++------------ 2 files changed, 18 insertions(+), 25 deletions(-) diff --git a/AsyncDisplayKit/ASCollectionView.mm b/AsyncDisplayKit/ASCollectionView.mm index 7cae446342..e8ae908593 100644 --- a/AsyncDisplayKit/ASCollectionView.mm +++ b/AsyncDisplayKit/ASCollectionView.mm @@ -876,13 +876,13 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell"; } if (_performingBatchUpdates) { - [_layoutFacilitator collectionViewBatchingCellEditsAtIndexPaths:indexPaths]; + [_layoutFacilitator collectionViewWillEditCellsAtIndexPaths:indexPaths batched:YES]; [_batchUpdateBlocks addObject:^{ [super insertItemsAtIndexPaths:indexPaths]; }]; } else { + [_layoutFacilitator collectionViewWillEditCellsAtIndexPaths:indexPaths batched:NO]; [UIView performWithoutAnimation:^{ - [_layoutFacilitator collectionViewEditingCellsAtIndexPaths:indexPaths]; [super insertItemsAtIndexPaths:indexPaths]; }]; } @@ -891,19 +891,18 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell"; - (void)rangeController:(ASRangeController *)rangeController didDeleteNodes:(NSArray *)nodes atIndexPaths:(NSArray *)indexPaths withAnimationOptions:(ASDataControllerAnimationOptions)animationOptions { ASDisplayNodeAssertMainThread(); - [_layoutFacilitator collectionViewEditingCellsAtIndexPaths:indexPaths]; if (!self.asyncDataSource || _superIsPendingDataLoad) { return; // if the asyncDataSource has become invalid while we are processing, ignore this request to avoid crashes } if (_performingBatchUpdates) { - [_layoutFacilitator collectionViewBatchingCellEditsAtIndexPaths:indexPaths]; + [_layoutFacilitator collectionViewWillEditCellsAtIndexPaths:indexPaths batched:YES]; [_batchUpdateBlocks addObject:^{ [super deleteItemsAtIndexPaths:indexPaths]; }]; } else { + [_layoutFacilitator collectionViewWillEditCellsAtIndexPaths:indexPaths batched:NO]; [UIView performWithoutAnimation:^{ - [_layoutFacilitator collectionViewEditingCellsAtIndexPaths:indexPaths]; [super deleteItemsAtIndexPaths:indexPaths]; }]; } @@ -917,13 +916,13 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell"; } if (_performingBatchUpdates) { - [_layoutFacilitator collectionViewBatchingSectionEditsAtIndexes:indexSet]; + [_layoutFacilitator collectionViewWillEditSectionsAtIndexSet:indexSet batched:YES]; [_batchUpdateBlocks addObject:^{ [super insertSections:indexSet]; }]; } else { + [_layoutFacilitator collectionViewWillEditSectionsAtIndexSet:indexSet batched:NO]; [UIView performWithoutAnimation:^{ - [_layoutFacilitator collectionViewEditingSectionsAtIndexSet:indexSet]; [super insertSections:indexSet]; }]; } @@ -937,13 +936,13 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell"; } if (_performingBatchUpdates) { - [_layoutFacilitator collectionViewBatchingSectionEditsAtIndexes:indexSet]; + [_layoutFacilitator collectionViewWillEditSectionsAtIndexSet:indexSet batched:YES]; [_batchUpdateBlocks addObject:^{ [super deleteSections:indexSet]; }]; } else { + [_layoutFacilitator collectionViewWillEditSectionsAtIndexSet:indexSet batched:NO]; [UIView performWithoutAnimation:^{ - [_layoutFacilitator collectionViewEditingSectionsAtIndexSet:indexSet]; [super deleteSections:indexSet]; }]; } diff --git a/AsyncDisplayKit/ASCollectionViewLayoutFacilitatorProtocol.h b/AsyncDisplayKit/ASCollectionViewLayoutFacilitatorProtocol.h index 9e0ff567e9..514df97448 100644 --- a/AsyncDisplayKit/ASCollectionViewLayoutFacilitatorProtocol.h +++ b/AsyncDisplayKit/ASCollectionViewLayoutFacilitatorProtocol.h @@ -17,29 +17,23 @@ /** * Inform that the collectionView is editing the cells at a list of indexPaths + * + * @param indexPaths, an array of NSIndexPath objects of cells being/will be edited. + * @param isBatched, indicates whether the editing operation will be batched by the collectionView + * + * NOTE: when isBatched, used in combination with -collectionViewWillPerformBatchUpdates */ -- (void)collectionViewEditingCellsAtIndexPaths:(NSArray *)indexPaths; +- (void)collectionViewWillEditCellsAtIndexPaths:(NSArray *)indexPaths batched:(BOOL)isBatched; /** * Inform that the collectionView is editing the sections at a set of indexes - */ -- (void)collectionViewEditingSectionsAtIndexSet:(NSIndexSet *)indexes; - -/** - * Inform that the collectionView is adding some cell updates into a batch, - * and will perform these batch updates at a later point * - * NOTE: used in combination with -collectionViewWillPerformBatchUpdates - */ -- (void)collectionViewBatchingCellEditsAtIndexPaths:(NSArray *)indexPaths; - -/** - * Inform that the collectionView is adding some section updates into a batch, - * and will perform these batch updates at a later point + * @param indexes, an NSIndexSet of section indexes being/will be edited. + * @param isBatched, indicates whether the editing operation will be batched by the collectionView * - * NOTE: used in combination with -collectionViewWillPerformBatchUpdates + * NOTE: when isBatched, used in combination with -collectionViewWillPerformBatchUpdates */ -- (void)collectionViewBatchingSectionEditsAtIndexes:(NSIndexSet *)indexes; +- (void)collectionViewWillEditSectionsAtIndexSet:(NSIndexSet *)indexes batched:(BOOL)batched; /** * Informs the delegate that the collectionView is about to call performBatchUpdates