diff --git a/CHANGELOG.md b/CHANGELOG.md index b8893e493..8da30863b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,8 @@ The changelog for `IGListKit`. Also see the [releases](https://github.com/instag - Fixed `IGListAdapterUpdaterDelegate` by 1) calling `willReloadDataWithCollectionView` on fallback reloads and 2) making sure `willPerformBatchUpdatesWithCollectionView` is only called when performing a batch update. [Maxime Ollivier](https://github.com/maxolls) (tbd) +- Fixed missing update when calling `performUpdatesAnimated` multiple times quickly and using the `reloadDataFallback()`. [Maxime Ollivier](https://github.com/maxolls) (tbd) + 4.0.0 ----- ### Breaking Changes diff --git a/Source/IGListKit/IGListAdapterUpdater.m b/Source/IGListKit/IGListAdapterUpdater.m index dd0511bde..721f5a14a 100644 --- a/Source/IGListKit/IGListAdapterUpdater.m +++ b/Source/IGListKit/IGListAdapterUpdater.m @@ -179,6 +179,10 @@ - (void)performBatchUpdatesWithCollectionViewBlock:(IGListCollectionViewBlock)co [collectionView layoutIfNeeded]; executeCompletionBlocks(YES); [delegate listAdapterUpdater:self didReloadDataWithCollectionView:collectionView isFallbackReload:YES]; + + // queue another update in case something changed during batch updates. this method will bail next runloop if + // there are no changes + [self _queueUpdateWithCollectionViewBlock:collectionViewBlock]; }; // disables multiple performBatchUpdates: from happening at the same time