Summary: Before the diff, you can lookup the object for a given section, and then lookup the section controller for that object, but this seems like a pretty valuable/common operation. Closes https://github.com/Instagram/IGListKit/pull/477 Differential Revision: D4537479 Pulled By: rnystrom fbshipit-source-id: ad47a243f0bb0fc72a362863dff2f00b0b640fab
13 KiB
CHANGELOG
The changelog for IGListKit. Also see the releases on GitHub.
3.0.0 (upcoming release)
This release closes the 3.0.0 milestone.
Breaking Changes
- Updated
didSelectdelegate call inIGListSingleSectionControllerDelegateto include object. Sherlouk (#397)
// OLD
- (void)didSelectSingleSectionController:(IGListSingleSectionController *)sectionController;
// NEW
- (void)didSelectSectionController:(IGListSingleSectionController *)sectionController
withObject:(id)object;
-
IGListUpdatingDelegatenow conforms toNSObject, bringing it in line with other framework protocols. Adlai Holler (#435) -
Changed
hasChangesmethods inIGListIndexPathResultandIGListIndexSetResultto read-only properties. Bofei Zhu (#453)
Enhancements
- Empty Views now move with Refresh Controls, and no longer use the
_collectionView.backgroundViewproperty. dshahidehpour (#462)]
2.2.0
This release closes the 2.2.0 milestone.
Enhancements
-
Added
-[IGListAdapter visibleCellsForObject:]API. Sherlouk (#442) -
Added
-[IGListAdapter sectionControllerForSection:]API. Adlai-Holler (#477)
Fixes
-
Fix bug where emptyView's hidden status is not updated after the number of items is changed with
insertInSectionController:atIndexes:or related methods. Peter Edmonston (#395) -
Fix bug where
IGListStackedSectionController's children need to knownumberOrItemsbefore didUpdate is called. (#348) -
Fix bug where
-[UICollectionViewCell ig_setStackedSectionControllerIndex:]should useOBJC_ASSOCIATION_COPY_NONATOMICfor NSNumber. PhilCai (#424) -
Fix potential bug with suppressing animations (by passing
NO) during-[IGListAdapter performUpdatesAnimated: completion:]where user would see UI glitches/flashing. Jesse Squires (019c990) -
Fix bug where scroll position would be incorrect in call to
-[IGListAdapter scrollToObject:supplementaryKinds:scrollDirection:scrollPosition:animated:with scrollDirection/scrollPosition of UICollectionViewScrollDirectionVertical/UICollectionViewScrollPositionCenteredVertically or UICollectionViewScrollDirectionHorizontal/UICollectionViewScrollPositionCenteredHorizontally and with a collection view with nonzero contentInset. David Yamnitsky (5cc0fcd)
2.1.0
This release closes the 2.1.0 milestone.
Enhancements
-
Added support for macOS. Note: this is only for the Diffing components. There is no support for
IGListAdapter,IGListSectionController, and other components at this time. Guilherme Rambo (#235) -
Added a macOS example project. Guilherme Rambo (#337)
-
Disables
prefetchEnabledby default onIGListCollectionView. Sven Bacia (#323) -
Working ranges now work with
IGListStackedSectionController. Ryan Nystrom (#356) -
Added CocoaPods subspec for diffing,
IGListKit/Diffingand an installation guide. Sherlouk (#368) -
Added
allowsBackgroundReloadingflag (defaultYES) toIGListAdapterUpdaterso users can configure this behavior as needed. Adlai-Holler (#375) -
-[IGListAdapter updater]is now public (read-only). Adlai-Holler (#379)
Fixes
-
Avoid
UICollectionViewcrashes when queueing a reload and insert/delete on the same item as well as reloading an item in a section that is animating. Ryan Nystrom (#325) -
Prevent adapter data source from deallocating after queueing an update. Ryan Nystrom (4cc91a2)
-
Fix out-of-bounds bug when child section controllers in a stack remove cells. Ryan Nystrom (#358)
-
Fix a grid layout bug when item has full-width and iter-item spacing is not zero. Bofei Zhu (#361)
2.0.0
This release closes the 2.0.0 milestone. We've increased test coverage to 97%. Thanks to the 27 contributors who helped with this release!
You can find a migration guide here to assist with migrating between 1.0 and 2.0.
Breaking Changes
- Diff result method on
IGListIndexPathResultchanged.-resultWithUpdatedMovesAsDeleteInsertswas removed and replaced with-resultForBatchUpdates(b5aa5e3)
// OLD
- (IGListIndexPathResult *)resultWithUpdatedMovesAsDeleteInserts;
// NEW
- (IGListIndexPathResult *)resultForBatchUpdates;
-
IGListDiffableequality method changed fromisEqual:toisEqualToDiffableObject:(ab890fc) -
The default
NSObject<IGListDiffable>category was removed and replaced withNSString<IGListDiffable>andNSNumber<IGListDiffable>categories. All other models will need to conform toIGListDiffable. (3947600) -
Added support for specifying an end position when scrolling. Bofei Zhu (#196). The
IGListAdapterscrolling method changed:
// OLD
- (void)scrollToObject:(id)object
supplementaryKinds:(nullable NSArray<NSString *> *)supplementaryKinds
scrollDirection:(UICollectionViewScrollDirection)scrollDirection
animated:(BOOL)animated;
// NEW
- (void)scrollToObject:(id)object
supplementaryKinds:(nullable NSArray<NSString *> *)supplementaryKinds
scrollDirection:(UICollectionViewScrollDirection)scrollDirection
scrollPosition:(UICollectionViewScrollPosition)scrollPosition
animated:(BOOL)animated;
- Changed
NSUIntegertoNSIntegerin all public APIs. Suraya Shivji (#200)
Enhancements
-
Added support for supplementaryViews created from nibs. Rawlinxx (#90)
-
Added support for cells created from nibs. Sven Bacia (#56)
-
Added an additional initializer for
IGListSingleSectionControllerto be able to support single sections created from nibs. An example can be found here. (#56)
- (instancetype)initWithNibName:(NSString *)nibName
bundle:(nullable NSBundle *)bundle
configureBlock:(IGListSingleSectionCellConfigureBlock)configureBlock
sizeBlock:(IGListSingleSectionCellSizeBlock)sizeBlock;
-
Added
-isFirstSectionand-isLastSectionAPIs toIGListSectionController(316fbe2) -
Added support for cells and supplementaryViews created from storyboard. There's a new required method on the
IGListCollectionContextprotocol to do this. Bofei Zhu (#92)
// IGListCollectionContext
- (__kindof UICollectionViewCell *)dequeueReusableCellFromStoryboardWithIdentifier:(NSString *)identifier
forSectionController:(IGListSectionController<IGListSectionType> *)sectionController
atIndex:(NSInteger)index;
-
Added
tvOSsupport. Jesse Squires (#137) -
Added
-[IGListAdapter visibleObjects]API. Ryan Nystrom (386ae07) -
Added
-[IGListAdapter objectForSectionController:]API. Ayush Saraswat (#204) -
Added
IGListGridCollectionViewLayout, a section-based grid layout. Bofei Zhu (#225) -
Added support for scrolling to an index in a section controller from within that section controller. There's a new required method on the
IGListCollectionContextprotocol to do this. Jesse Squires (e5afb5b)
// IGListCollectionContext
- (void)scrollToSectionController:(IGListSectionController<IGListSectionType> *)sectionController
atIndex:(NSInteger)index
scrollPosition:(UICollectionViewScrollPosition)scrollPosition
animated:(BOOL)animated;
Fixes
-
Fixed
-[IGListAdapter reloadDataWithCompletion:]not returning early whencollectionViewordataSourceisnilandcompletionisnil. Ben Asher (#51) -
Prevent
UICollectionViewbug when accessing a cell during working range updates. Ryan Nystrom (#216) -
Skip reloading for objects that are not found when calling
-[IGListAdapter reloadObjects:]. Ryan Nystrom (ca15e29) -
Fixes a crash when a reload is queued for an object that is deleted in the same runloop turn. Ryan Nystrom (7c3d499)
-
Fixed a bug where
IGListStackSectionControllerwould only set its supplementary source once. Ryan Nystrom (#286) -
Fixed a bug where
IGListStackSectionControllerpassed the wrong section controller for will-drag scroll events. Ryan Nystrom (#286) -
Fixed a crash when deselecting a cell through a child section controller in an
IGListStackSectionController. Ryan Nystrom (#295)
Documentation
-
We now have 100% documentation coverage. Docs been refined and clarified. Jesse Squires (#207)
-
Added new Guides: Getting Started, Migration
-
Added examples for Today & iMessage extensions. Sherlouk (#112)
1.0.0
Initial release. 🎉