mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-07 23:03:35 +00:00
add completion block to reloadData methods
This commit is contained in:
parent
dd10fda42c
commit
3f509dbd2f
@ -70,6 +70,14 @@
|
|||||||
*/
|
*/
|
||||||
@property (nonatomic, assign) CGFloat leadingScreensForBatching;
|
@property (nonatomic, assign) CGFloat leadingScreensForBatching;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reload everything from scratch, destroying the working range and all cached nodes.
|
||||||
|
*
|
||||||
|
* @param completion Block to run on completion or nil.
|
||||||
|
* @warning This method is substantially more expensive than UICollectionView's version.
|
||||||
|
*/
|
||||||
|
- (void)reloadDataWithCompletion:(void (^)())completion;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reload everything from scratch, destroying the working range and all cached nodes.
|
* Reload everything from scratch, destroying the working range and all cached nodes.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -162,13 +162,18 @@ static BOOL _isInterceptedSelector(SEL sel)
|
|||||||
#pragma mark -
|
#pragma mark -
|
||||||
#pragma mark Overrides.
|
#pragma mark Overrides.
|
||||||
|
|
||||||
- (void)reloadData
|
- (void)reloadDataWithCompletion:(void (^)())completion
|
||||||
{
|
{
|
||||||
ASDisplayNodeAssert(self.asyncDelegate, @"ASCollectionView's asyncDelegate property must be set.");
|
ASDisplayNodeAssert(self.asyncDelegate, @"ASCollectionView's asyncDelegate property must be set.");
|
||||||
ASDisplayNodePerformBlockOnMainThread(^{
|
ASDisplayNodePerformBlockOnMainThread(^{
|
||||||
[super reloadData];
|
[super reloadData];
|
||||||
});
|
});
|
||||||
[_dataController reloadDataWithAnimationOption:kASCollectionViewAnimationNone];
|
[_dataController reloadDataWithAnimationOption:kASCollectionViewAnimationNone completion:completion];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)reloadData
|
||||||
|
{
|
||||||
|
[self reloadDataWithCompletion:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setDataSource:(id<UICollectionViewDataSource>)dataSource
|
- (void)setDataSource:(id<UICollectionViewDataSource>)dataSource
|
||||||
|
|||||||
@ -70,6 +70,14 @@
|
|||||||
*/
|
*/
|
||||||
@property (nonatomic, assign) CGFloat leadingScreensForBatching;
|
@property (nonatomic, assign) CGFloat leadingScreensForBatching;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reload everything from scratch, destroying the working range and all cached nodes.
|
||||||
|
*
|
||||||
|
* @param completion Block to run on completion or nil.
|
||||||
|
* @warning This method is substantially more expensive than UITableView's version.
|
||||||
|
*/
|
||||||
|
-(void)reloadDataWithCompletion:(void (^)())completion;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reload everything from scratch, destroying the working range and all cached nodes.
|
* Reload everything from scratch, destroying the working range and all cached nodes.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -205,13 +205,18 @@ static BOOL _isInterceptedSelector(SEL sel)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)reloadData
|
- (void)reloadDataWithCompletion:(void (^)())completion
|
||||||
{
|
{
|
||||||
ASDisplayNodeAssert(self.asyncDelegate, @"ASTableView's asyncDelegate property must be set.");
|
ASDisplayNodeAssert(self.asyncDelegate, @"ASTableView's asyncDelegate property must be set.");
|
||||||
ASDisplayNodePerformBlockOnMainThread(^{
|
ASDisplayNodePerformBlockOnMainThread(^{
|
||||||
[super reloadData];
|
[super reloadData];
|
||||||
});
|
});
|
||||||
[_dataController reloadDataWithAnimationOption:UITableViewRowAnimationNone];
|
[_dataController reloadDataWithAnimationOption:UITableViewRowAnimationNone completion:completion];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)reloadData
|
||||||
|
{
|
||||||
|
[self reloadDataWithCompletion:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setTuningParameters:(ASRangeTuningParameters)tuningParameters forRangeType:(ASLayoutRangeType)rangeType
|
- (void)setTuningParameters:(ASRangeTuningParameters)tuningParameters forRangeType:(ASLayoutRangeType)rangeType
|
||||||
|
|||||||
@ -155,7 +155,7 @@ typedef NSUInteger ASDataControllerAnimationOptions;
|
|||||||
|
|
||||||
- (void)moveRowAtIndexPath:(NSIndexPath *)indexPath toIndexPath:(NSIndexPath *)newIndexPath withAnimationOption:(ASDataControllerAnimationOptions)animationOption;;
|
- (void)moveRowAtIndexPath:(NSIndexPath *)indexPath toIndexPath:(NSIndexPath *)newIndexPath withAnimationOption:(ASDataControllerAnimationOptions)animationOption;;
|
||||||
|
|
||||||
- (void)reloadDataWithAnimationOption:(ASDataControllerAnimationOptions)animationOption;;
|
- (void)reloadDataWithAnimationOption:(ASDataControllerAnimationOptions)animationOption completion:(void (^)())completion;
|
||||||
|
|
||||||
/** @name Data Querying */
|
/** @name Data Querying */
|
||||||
|
|
||||||
|
|||||||
@ -437,7 +437,7 @@ static void *kASSizingQueueContext = &kASSizingQueueContext;
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)reloadDataWithAnimationOption:(ASDataControllerAnimationOptions)animationOption
|
- (void)reloadDataWithAnimationOption:(ASDataControllerAnimationOptions)animationOption completion:(void (^)())completion
|
||||||
{
|
{
|
||||||
[self performDataFetchingWithBlock:^{
|
[self performDataFetchingWithBlock:^{
|
||||||
// Fetching data in calling thread
|
// Fetching data in calling thread
|
||||||
@ -478,6 +478,10 @@ static void *kASSizingQueueContext = &kASSizingQueueContext;
|
|||||||
}];
|
}];
|
||||||
|
|
||||||
[self _batchInsertNodes:updatedNodes atIndexPaths:updatedIndexPaths withAnimationOptions:animationOption];
|
[self _batchInsertNodes:updatedNodes atIndexPaths:updatedIndexPaths withAnimationOptions:animationOption];
|
||||||
|
|
||||||
|
if (completion) {
|
||||||
|
dispatch_async(dispatch_get_main_queue(), completion);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user