From 263bb311f2cfd0f7c5b718d3f3c26f52b3b38eaa Mon Sep 17 00:00:00 2001 From: Bin Liu Date: Wed, 27 Jan 2016 10:50:30 -0800 Subject: [PATCH] expose beginUpdates and endUpdates --- AsyncDisplayKit/ASCollectionNode+Beta.h | 2 ++ AsyncDisplayKit/ASCollectionNode.mm | 10 ++++++++++ AsyncDisplayKit/ASCollectionView.mm | 5 +++++ AsyncDisplayKit/Details/ASCollectionInternal.h | 2 ++ 4 files changed, 19 insertions(+) diff --git a/AsyncDisplayKit/ASCollectionNode+Beta.h b/AsyncDisplayKit/ASCollectionNode+Beta.h index 11ea3ac2fd..e05e740ba2 100644 --- a/AsyncDisplayKit/ASCollectionNode+Beta.h +++ b/AsyncDisplayKit/ASCollectionNode+Beta.h @@ -14,6 +14,8 @@ NS_ASSUME_NONNULL_BEGIN @interface ASCollectionNode (Beta) - (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout layoutFacilitator:(nullable id)layoutFacilitator; +- (void)beginUpdates; +- (void)endUpdatesAnimated:(BOOL)animated; @end diff --git a/AsyncDisplayKit/ASCollectionNode.mm b/AsyncDisplayKit/ASCollectionNode.mm index 5bed1a1bbf..204c434621 100644 --- a/AsyncDisplayKit/ASCollectionNode.mm +++ b/AsyncDisplayKit/ASCollectionNode.mm @@ -187,6 +187,16 @@ [self.view clearFetchedData]; } +- (void)beginUpdates +{ + [self.view.dataController beginUpdates]; +} + +- (void)endUpdatesAnimated:(BOOL)animated +{ + [self.view.dataController endUpdatesAnimated:animated completion:nil]; +} + #pragma mark - ASCollectionView Forwards - (ASRangeTuningParameters)tuningParametersForRangeType:(ASLayoutRangeType)rangeType diff --git a/AsyncDisplayKit/ASCollectionView.mm b/AsyncDisplayKit/ASCollectionView.mm index 2b588d088b..62294e3415 100644 --- a/AsyncDisplayKit/ASCollectionView.mm +++ b/AsyncDisplayKit/ASCollectionView.mm @@ -396,6 +396,11 @@ static NSString * const kCellReuseIdentifier = @"_ASCollectionViewCell"; #pragma mark Assertions. +- (ASDataController *)dataController +{ + return _dataController; +} + - (void)performBatchAnimated:(BOOL)animated updates:(void (^)())updates completion:(void (^)(BOOL))completion { ASDisplayNodeAssertMainThread(); diff --git a/AsyncDisplayKit/Details/ASCollectionInternal.h b/AsyncDisplayKit/Details/ASCollectionInternal.h index a0aff1e573..5bf70dfd35 100644 --- a/AsyncDisplayKit/Details/ASCollectionInternal.h +++ b/AsyncDisplayKit/Details/ASCollectionInternal.h @@ -8,11 +8,13 @@ #import "ASCollectionView.h" #import "ASCollectionNode.h" +#import "ASDataController.h" #import "ASRangeController.h" @interface ASCollectionView () - (instancetype)_initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)layout layoutFacilitator:(id)layoutFacilitator ownedByNode:(BOOL)ownedByNode; +@property (nonatomic, strong, readonly) ASDataController *dataController; @property (nonatomic, weak, readwrite) ASCollectionNode *collectionNode; @property (nonatomic, strong, readonly) ASRangeController *rangeController; @end