IGListKit/Source
Maxime Ollivier 7a23ed521d update IGListCollectionViewLayout to allow for partial layout invalidation
Summary:
* Currently, we invalidate the entire layout whenever we make any updates, like inserting new rows at the bottom.
* This is one of the most common causes of frame drop on feed, so let's allow partial invalidation based on the minimum modified section.
  * For example, if we delete section 10, move section 4, and insert section 12, we would re-calculate the layout starting at section 4.
* This gets us the majority of the performance gains and it's relatively simple. In the future, we can make further optimizations, like 1) index path level invalidation and 2) finding the smallest modified index path whose properties (ex: size) have actually changed.

Reviewed By: rnystrom

Differential Revision: D6510140

fbshipit-source-id: 6ff1766b400c5aa82abc29ae76ab96660c3bb106
2017-12-15 09:33:39 -08:00
..
Common Assert duplicate objects and check object types on map lookup 2017-11-30 12:48:07 -08:00
Internal Assert duplicate objects and check object types on map lookup 2017-11-30 12:48:07 -08:00
IGListAdapter.h Add docs warning about reloadData being expensive 2017-11-21 13:18:17 -08:00
IGListAdapter.m Make sure collection have unique ListDiffable objects on initial data… 2017-11-21 13:18:12 -08:00
IGListAdapterDataSource.h Remove white space 2017-05-27 08:17:59 -07:00
IGListAdapterDelegate.h Remove @param alignment from header docs #trivial 2017-04-18 09:46:18 -07:00
IGListAdapterUpdateListener.h Add update finished announcer API 2017-10-20 08:57:11 -07:00
IGListAdapterUpdater.h Swift name annotations 2017-05-09 14:31:28 -07:00
IGListAdapterUpdater.m Assert duplicate objects and check object types on map lookup 2017-11-30 12:48:07 -08:00
IGListAdapterUpdaterDelegate.h Swift name annotations 2017-05-09 14:31:28 -07:00
IGListBatchContext.h Swift name annotations 2017-05-09 14:31:28 -07:00
IGListBindable.h Swift name annotations 2017-05-09 14:31:28 -07:00
IGListBindingSectionController.h Swift name annotations 2017-05-09 14:31:28 -07:00
IGListBindingSectionController.m Dedupe view models in IGListBindingSectionController 2017-09-20 18:04:11 -07:00
IGListBindingSectionControllerDataSource.h Swift name annotations 2017-05-09 14:31:28 -07:00
IGListBindingSectionControllerSelectionDelegate.h Add cell (un)highlight APIs 2017-09-20 08:46:17 -07:00
IGListCollectionContext.h Select an item through IGListCollectionContext 2017-08-04 15:19:56 -07:00
IGListCollectionViewLayout.h Add horizontal scrolling support to IGListCollectionViewLayout 2017-08-07 09:33:30 -07:00
IGListCollectionViewLayout.mm update IGListCollectionViewLayout to allow for partial layout invalidation 2017-12-15 09:33:39 -08:00
IGListDisplayDelegate.h Swift name annotations 2017-05-09 14:31:28 -07:00
IGListGenericSectionController.h Swift name annotations 2017-05-09 14:31:28 -07:00
IGListGenericSectionController.m Add generic type section controller 2017-04-19 12:45:36 -07:00
IGListKit.h Add update finished announcer API 2017-10-20 08:57:11 -07:00
IGListReloadDataUpdater.h Swift name annotations 2017-05-09 14:31:28 -07:00
IGListReloadDataUpdater.m Prevent duplicate item deletes and drop reload collisions 2017-04-19 17:17:41 -07:00
IGListScrollDelegate.h IGListAdapter support for scrollViewDidEndDecelerating 2017-08-23 13:30:44 -07:00
IGListSectionController.h Add cell (un)highlight APIs 2017-09-20 08:46:17 -07:00
IGListSectionController.m Add cell (un)highlight APIs 2017-09-20 08:46:17 -07:00
IGListSingleSectionController.h Swift name annotations 2017-05-09 14:31:28 -07:00
IGListSingleSectionController.m Remove IGListSectionType 2017-04-19 08:26:30 -07:00
IGListStackedSectionController.h Swift name annotations 2017-05-09 14:31:28 -07:00
IGListStackedSectionController.m Add cell (un)highlight APIs 2017-09-20 08:46:17 -07:00
IGListSupplementaryViewSource.h Swift name annotations 2017-05-09 14:31:28 -07:00
IGListUpdatingDelegate.h Update project settings and fix errors 2017-10-26 11:20:55 -07:00
IGListWorkingRangeDelegate.h Swift name annotations 2017-05-09 14:31:28 -07:00
Info.plist Fix binding SC deselection crash and publish 3.1.1 2017-08-31 12:51:10 -07:00