The changelog for IGListKit. Also see the releases on GitHub.
-
Removed unneeded diffing functions
IGListDiffExperiment(...)andIGListDiffPathsExperiment(...). Maxime Ollivier (tbd) -
ListSectionController.collectionContextandListGenericSectionController.objectare now implicitly-unwrapped optionals in Swift. Nate Stedman (tbd) -
The argument of
IGListGenericSectionController's-didUpdateToObject:is now generic, notid. Nate Stedman (tbd)
-
Introduce
IGListSwiftKit, with Swift refinements fordequeueReusableCellOfClassmethods. Koen Punt (#1388). -
Added
APPLICATION_EXTENSION_API_ONLYsupport forIGListDiffKitPeter Meyers (#1422) -
Improved performance by deferring requesting objects from the
IGListAdapterDataSourceuntil just before diffing is executed. If n updates are coalesced into one, this results in just a single request for objects from the data source. Shipped with experimentIGListExperimentDeferredToObjectCreationfrom Ryan Nystrom. Maxime Ollivier (tbd) -
Improved performance by using
reloadDatawhen there are too many diffing updates. Shipped with experimentIGListExperimentReloadDataFallbackfrom Ryan Nystrom. Maxime Ollivier (tbd)
-
IGListCollectionViewLayoutshould get the section/index counts viaUICollectionViewto stay in sync, instead of thedataSourceMaxime Ollivier (tbd) -
Remove
[collectionView layoutIfNeeded]before scrolling in[IGListAdapter scrollToObject...]to avoid creating off-screen cells. Maxime Ollivier (tbd) -
Remove
[collectionView layoutIfNeeded]before updating in[IGListAdapterUpdater performBatchUpdates...]to fix occasional glitches. Maxime Ollivier (tbd) -
Fixed
IGListAdapterUpdaterDelegateby 1) callingwillReloadDataWithCollectionViewon fallback reloads and 2) making surewillPerformBatchUpdatesWithCollectionViewis only called when performing a batch update. Maxime Ollivier (tbd) -
Fixed missing update when calling
performUpdatesAnimatedmultiple times quickly and using thereloadDataFallback(). Maxime Ollivier (tbd) -
Request the
UICollectionViewuntil just-before we update. This way if theUICollectionViewis changed between update-queue and execution, we guarantee the update is performed on the correct view. Ship with experimentIGListExperimentGetCollectionViewAtUpdatefrom Ryan Nystrom. Maxime Ollivier (tbd)
-
Added Swift annotation name to
IGListAdapterDelegatewhich removesIGprefix. The new name for Swift clients isListAdapterDelegate. Andrea Antonioni (#1116) -
IGListKithas been split intoIGListKitandIGListDiffKitfor Xcode and Carthage builds. Cocoapods continues to use an all-inclusiveIGListKitpodspec. Nate Stedman (#1377) -
Remove
coalescanceTimefrom IGListAdapterUpdate, since it increase crash rate. Zhisheng Huang (2f76e8c) -
All
IGListBindingSectionControllerSelectionDelegatemethods are now required. Bofei Zhu (#1186) -
Renamed
[IGListAdapterUpdatingDelegate listAdapterUpdater:willPerformBatchUpdatesWithCollectionView:]to[IGListAdapterUpdatingDelegate listAdapterUpdater:willPerformBatchUpdatesWithCollectionView:fromObjects:toObjects:listIndexSetResult:]to include more supporting info on updated objects. Jeremy Cohen (b200dda) -
Renamed
[IGListAdapterUpdatingDelegatelistAdapterUpdater:collectionView:willCrashWithException:fromObjects:toObjects:updates:]to[ IGListAdapterUpdatingDelegatelistAdapterUpdater:collectionView:willCrashWithException:fromObjects:toObjects:diffResult:updates:]to include diff result info. Zhisheng Huang (039e77e) -
Remove
IGListStackedSectionController. Hanton Yang (#1355)
-
Added
IGListCollectionScrollingTraitsfor exposingUICollectionViewscrolling traits to section controllers viaIGListCollectionContext. Adam Stern (b4c8ea1) -
IGListBindingSectionControllerno longer asserts when reloading the entire section. A warning message is now logged if the entire section is going to be reloaded. Jeff Bailey (#1213) -
Added
preferItemReloadsForSectionReloadsin IGListAdapterUpdater so that the item updates are invoked with the proper collectionView animation, instead of using the delete+insert section operation when the number of items is unchanged. Zhisheng Huang (f699ea0) -
Created
IGListAdapterPerformanceDelegatefor IGListAdapter to be able to measure how long some operations take across all section controllers. For example, how long it takes to dequeue a cell. Maxime Ollivier (4662454) -
Update CocoaPods integration to use the CocoaPods specs CDN Koen Punt (#1386)
-
Fixed bug with layouts inconsistency in
updateAnimated:completionof IGListBindingSectionController. Qinghua Hong (#1285) -
Fixed bug with
-[IGListAdapter scrollToObject:supplementaryKinds:scrollDirection:scrollPosition:animated:]where the content inset(bottom/right) of the collection view was incorrectly being applied to the final offset and was inconsistent with the content inset(top/left) of the collection view being applied. Qinghua Hong (#1284) -
Fixed crash when the data source is nil before calling
-[IGListAdapterUpdater performUpdateWithCollectionViewBlock:fromObjects:toObjectsBlock:animated:objectTransitionBlock:completion:]. Zhisheng Huang (6cdd112) -
Experimental fix to get the
UICollectionViewfor batch updating immediately before applying the update. Ryan Nystrom (583efb9) -
Fixed bug with
IGListDiff.mmwhere arrays ofNSIndexPath, instead ofNSIndexPath, were incorrectly set as objects for the IndexPathMaps. Bofei Zhu (#1205) -
[IGListAdapterUpdater performBatchUpdatesWithCollectionViewBlock:]and[IGListAdapterUpdater performReloadDataWithCollectionViewBlock:]clean state and run completion blocks if theirUICollectionViewis nil. Brandon Darin (290d592) -
Ensuring view models with duplicate diff identifiers are removed when view models are first requested by
IGListBindingSectionControllerAdam Stern (a1ee4c1) -
Fixed
[IGListAdapterUpdater reloadItemInCollectionView:fromIndexPath:toIndexPath:]does not call delegate when not inside a batch update. Bofei Zhu (#1211) -
Log instead of assert for duplicate diff identifiers to make code testable. Adam Stern (bee2178)
-
Removed
nibNameargument fromIGListReusableViewIdentifier. Trung Duc (#1223) -
Fixed crash when using
-[IGListCollectionContext dequeueReusableCellOfClass:withReuseIdentifier:forSectionController:atIndex:]Jeremy Lawrence (3b19cfb) -
Added missing method override to
IGListBindingSectionControllerthat updates the internalviewModelsarray after moving a cell. Dennis Müller (#1262) -
Fixed logic flaw in
[IGListCollectionViewLayout shouldInvalidateLayoutForBoundsChange:]. Allen Hsu (#1236) -
Fixed crash when calling
[UICollectionView layoutAttributesForSupplementaryElementOfKind...]withIGListCollectionViewLayoutand the section controller doesn't actually return a supplementary view Maxime Ollivier (cddb297) -
Added
IGListExperimentAvoidLayoutOnScrollToObjectto avoid creating off-screen cells when calling[IGListAdapter scrollToObject ...]. Maxime Ollivier (6faddd9) -
Added
IGListExperimentFixIndexPathImbalanceto test fixing a crash when inserting and deleting the same NSIndexPath multiple times. Maxime Ollivier (7824698)
-
Relicensed IGListKit to MIT. Ryan Nystrom (000bc36)
-
Experimental performance improvement from deferring
-[IGListAdapterDataSource objectsForListAdapter:]calls until just before diffing. Ryan Nystrom (3059c5e)
-
Add support for UICollectionView's interactive reordering in iOS 9+. Updates include
-[IGListSectionController canMoveItemAtIndex:]to enable the behavior,-[IGListSectionController moveObjectFromIndex:toIndex:]called when items within a section controller were moved through reordering,-[IGListAdapterDataSource listAdapter:moveObject:from:to]called when section controllers themselves were reordered (only possible when all section controllers contain exactly 1 object), and-[IGListUpdatingDelegate moveSectionInCollectionView:fromIndex:toIndex]to enable custom updaters to conform to the reordering behavior. The update also includes two new examplesReorderableSectionControllerandReorderableStackedViewControllerto demonstrate how to enable interactive reordering in your client app. Jared Verdi (#976) -
5x improvement to diffing performance when result is only inserts or deletes. Ryan Nystrom (afd2d29)
-
Can always show sticky header although section data is empty. Marcus Wu (#1129)
-
Added
-[IGListCollectionContext dequeueReusableCellOfClass:withReuseIdentifier:forSectionController:atIndex:]to allow for registering cells of the same class with different reuse identifiers. Jeremy Lawrence (f47753e)
-
Copy objects when retrieving from datasource to prevent modification of models in binding section controller. Kashish Goel (#1109)
-
Fixed footer is sticky when
stickyHeaderistrueaelam (#1094) -
Updated IGListCollectionViewLayout to rely on layoutAttributesClass instead of vanilla
UICollectionViewLayoutAttributesCole Potrocky #1135 -
-[IGListSectionController didSelectItemAtIndex:]is now called when ascrollViewDelegateorcollectionViewDelegateis set. Ryan Nystrom (#1108) -
Fixed binding section controllers failing to update their cells when the section controller's section changes. Chrisna Aing (#1144)
-
Fixed a bug caused when applying interactive reordering on a single section item while dragging it through the last spot of the collection view and back to some (non-last) target position. Ofir Gluzman #1289
-
Added
-[IGListSectionController didHighlightItemAtIndex:]and-[IGListSectionController didUnhighlightItemAtIndex:]APIs to supportUICollectionViewcell highlighting. Kevin Delannoy (#933) -
Added
-didDeselectSectionController:withObject:toIGListSingleSectionControllerDelegateDarren Clark (#954) -
Added a new listener API to be notified when
IGListAdapterfinishes updating. Add listeners via-[IGListAdapter addUpdateListener:]with objects conforming to the newIGListAdapterUpdateListenerprotocol. Ryan Nystrom (5cf01cc) -
Updated project settings for iOS 11. Ryan Nystrom (#942)
-
Added support UICollectionElementKindSectionFooter for IGListCollectionViewLayout. Igor Vasilenko (#1017)
-
Added experiment to make
-[IGListAdapter visibleSectionControllers:]a bit faster. Maxime Ollivier (82a2a2e) -
Added support
-[UIScrollView adjustedContentInset]for iOS 11. Guoyin Li (#1020) -
Added new
transitionDelegateAPI to giveIGListSectionControllers control to customize initial and finalUICollectionViewLayoutAttributes. Includes automatic integration withIGListCollectionViewLayout. Sue Suhan Ma (26924ec) -
Reordered position of intercepted selector in
IGListAdapterProxy'sisInterceptedSelectormethod to reduce overall consumption of compare. zhongwuzw (#1055) -
Made IGListTransitionDelegate inherited from NSObject. Igor Vasilenko (#1075)
-
Duplicate objects for initial data source setup filtered out. Mikhail Vashlyaev (#993
-
Weakly reference the
UICollectionViewin coalescence so that it can be released if the rest of system is destroyed. Ryan Nystrom (d322c2e) -
Fix bug with
-[IGListAdapter scrollToObject:supplementaryKinds:scrollDirection:scrollPosition:animated:]where the content inset of the collection view was incorrectly being applied to the final offset. Ryan Nystrom (b2860c3) -
Avoid crash when invalidating the layout while inside `-[UICollectionView performBatchUpdates:completion:]. Ryan Nystrom (d9a89c9)
-
Duplicate view models in
IGListBindingSectionControllergets filtered out. Weyert de Boer (#916) -
Check object type on lookup to prevent crossing types if different objects collide with their identifiers. Ryan Nystrom (296baf5)
- Prevent a crash when
IGListBindingSectionControllerDelegateobjects do not implement the optional deselection API. Ryan Nystrom (#921)
-
Added debug descriptions for 'IGListBindingSectionController' when printing to lldb via
po [IGListDebugger dump]. Candance Smith (#856) -
Added
-[IGListSectionController didDeselectItemAtIndex:]API to support defaultUICollectionViewcell deselection. Ryan Nystrom (6540f96) -
Added
-[IGListCollectionContext selectItemAtIndex:]Select an item through IGListCollectionContext like-[IGListCollectionContext deselectItemAtIndex:]. Marvin Nazari (#874) -
Added horizontal scrolling support to
IGListCollectionViewLayout. Peter Edmonston (#857) -
Added support for
scrollViewDidEndDeceleratingtoIGListAdapter. Phil Larson (#899) -
Automatically disable
[UICollectionView isPrefetchingEnabled]when setting a collection view on an adapter. Ryan Nystrom (#889)
-
Prevent a crash when update queued immediately after item batch update. Ryan Nystrom (3dc6060)
-
Return correct
-[IGListAdapter visibleSectionControllers]when section has no items, but has supplementary views. Mani Ghasemlou (#643) -
Call
[CATransaction commit]before calling completion block in IGListAdapterUpdater to prevent animation issues. Maxime Ollivier (6f946b2) -
Fix
scrollToObject:supplementaryKinds:...not scrolling when section is empty but does have supplymentary views. Gulam Moledina (#808) -
Better support for non-top positions in
scrollToObject:API. Gulam Moledina (#861)
This release closes the 3.0.0 milestone.
- Added Swift annotation names which remove
IGprefixes from class names, C functions, and other APIs. Note, this only affects Swift clients. Robert Payne (#593)
Example:
// OLD
class MySectionController : IGListSectionController { ... }
// NEW
class MySectionController : ListSectionController { ... }
// OLD
IGListDiff([], [], .equality)
// NEW
ListDiff(oldArray: [], newArray: [], .equality)- 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) -
Replaced
IGListGridCollectionViewLayoutwithIGListCollectionViewLayout. Ryan Nystrom (#482, #450) -
Renamed
IGListAdapterUpdaterDelegatemethod tolistAdapterUpdater:didPerformBatchUpdates:collectionView:. Vincent Peng (#491) -
Moved section controller mutations to
IGListBatchContext, provided as a parameter when calling-performBatchAnimated:updates:completionon a section controller'scollectionContext. All updates (insert, delete, reload item/section controller) must now be done inside a batch update block. Ryan Nystrom (a15ea08)
// OLD
[self.collectionContext performBatchAnimated:YES updates:^{
self.expanded = YES;
[self.collectionContext insertInSectionController:self atIndexes:[NSIndexSet indexSetWithIndex:1]];
} completion:nil];
// NEW
[self.collectionContext performBatchAnimated:YES updates:^(id<IGListBatchContext> batchContext) {
self.expanded = YES;
[batchContext insertInSectionController:self atIndexes:[NSIndexSet indexSetWithIndex:1]];
} completion:nil];
// OLD
[self.collectionContext reloadSectionController:self];
// NEW
[self.collectionContext performBatchAnimated:YES updates:^(id<IGListBatchContext> batchContext) {
[batchContext reloadSectionController:self];
} completion:nil];-
-[IGListCollectionContext containerSize]no longer accounts for the content inset of the collection view when returning a size. If you require that behavior, you can now use-[IGListCollectionContext insetContainerSize]. Ryan Nystrom (623ff2a) -
IGListCollectionViewhas been completely removed in favor of using plain oldUICollectionView. See discussion at #409 for details. Jesse Squires (2284ce3) -
IGListBatchUpdateDatareplaced itsNSSetproperties withNSArrayinstead. Ryan Nystrom (#616) -
IGListUpdatingDelegatenow requires method-reloadItemInCollectionView:fromIndexPath:toIndexPath:to handle reloading cells between index paths. Ryan Nystrom (#657) -
-[IGListCollectionContext sectionForSectionController:]has been removed and replaced with theNSInteger sectionIndexproperty onIGListSectionController. Andrew Monshizadeh #671
-
Added an initializer on
IGListAdapterthat does not take aworkingRangeSizeand defaults it to 0. BasThomas (#686) -
Added
-[IGListAdapter visibleCellsForObject:]API. Sherlouk (#442) -
Added
-[IGListAdapter sectionControllerForSection:]API. Adlai-Holler (#477) -
You can now manually move items (cells) within a section controller, ex:
[self.collectionContext moveInSectionController:self fromIndex:0 toIndex:1]. Ryan Nystrom (#418) -
Invalidate the layout of a section controller and control the transition with
UIViewanimation APIs. Ryan Nystrom (#499) -
Added
-[IGListAdapter visibleIndexPathsForSectionController:]API. Malecks (#465) -
Added
IGListBindingSectionControllerwhich automatically binds view models to cells and animates updates at the cell level. Ryan Nystrom (#494) -
Added
IGListGenericSectionControllerto take advantage of Objective-C (and Swift) generics and automatically store strongly-typed references to the object powering your section controller. Ryan Nystrom (301f147) -
Added a debug option for IGListKit that you can print to lldb via
po [IGListDebugger dump]. Ryan Nystrom (#617)
-
Gracefully handle a
nilsection controller returned by anIGListAdapterDataSource. Ryan Nystrom (#488) -
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) -
Fix a crash when reusing collection views between embedded
IGListAdapters. Ryan Nystrom (#517) -
Only collect batch updates when explicitly inside the batch update block, execute them otherwise. Fixes dropped updates. Ryan Nystrom (#494)
-
Remove objects that return
nildiff identifiers before updating. Ryan Nystrom (af984ca) -
Fix a potential crash when a section is moved and deleted at the same time. Ryan Nystrom (#577)
-
Prevent section controllers and supplementary sources from returning negative sizes that crash
UICollectionViewFlowLayout. Ryan Nystrom (#583) -
Add nullability annotations to a few more headers. Adlai Holler (#626)
-
Fix a crash when inserting or deleting from the same index within the same batch-update application. Ryan Nystrom (#616)
-
IGListSectionTypeprotocol was removed and its methods were absorted into theIGListSectionControllerbase class with default implementations. Ryan Nystrom (3102852) -
When setting the collection view on
IGListAdapter, its layout is now properly invalidated. Jesse Squires (#677) -
Fixes a bug when reusing
UICollectionViews with multipleIGListAdapters in an embedded environment that would accidentallynilthecollectionViewproperty of another adapter. Ryan Nystrom (#721) -
Fixes a bug where maintaining a reference to a section controller but not the list adapter in an async block could lead to calling
-[IGListAdapter sectionForSectionController:](or checking-[IGListSectionController sectionIndex]) and receiving an incorrect value. With the adapter check the value would be 0 because the adapter wasniland for the section controller property the value would be the last set index value. Andrew Monshizadeh (#709)
This release closes the 2.1.0 milestone.
-
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)
-
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)
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.
- 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;-
Consider supplementary views with display and end-display events. Ryan Nystrom (#470)
-
Changed
NSUIntegertoNSIntegerin all public APIs. Suraya Shivji (#200)
-
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;-
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)
-
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)
Initial release. 🎉