diff --git a/Source/IGListAdapterUpdateListener.h b/Source/IGListAdapterUpdateListener.h
index ddfe96986..9c8aad2bd 100644
--- a/Source/IGListAdapterUpdateListener.h
+++ b/Source/IGListAdapterUpdateListener.h
@@ -32,6 +32,9 @@ typedef NS_ENUM(NSInteger, IGListAdapterUpdateType) {
IGListAdapterUpdateTypeItemUpdates,
};
+/**
+ Conform to this protocol to receive events about `IGListAdapter` updates.
+ */
NS_SWIFT_NAME(ListAdapterUpdateListener)
@protocol IGListAdapterUpdateListener
diff --git a/Source/IGListBindingSectionControllerSelectionDelegate.h b/Source/IGListBindingSectionControllerSelectionDelegate.h
index ae5992e54..5eef5aa6c 100644
--- a/Source/IGListBindingSectionControllerSelectionDelegate.h
+++ b/Source/IGListBindingSectionControllerSelectionDelegate.h
@@ -30,6 +30,8 @@ NS_SWIFT_NAME(ListBindingSectionControllerSelectionDelegate)
didSelectItemAtIndex:(NSInteger)index
viewModel:(id)viewModel;
+@optional
+
/**
Tells the delegate that a cell at a given index was deselected.
@@ -39,7 +41,6 @@ NS_SWIFT_NAME(ListBindingSectionControllerSelectionDelegate)
@note Method is `@optional` until the 4.0.0 release where it will become required.
*/
-@optional
- (void)sectionController:(IGListBindingSectionController *)sectionController
didDeselectItemAtIndex:(NSInteger)index
viewModel:(id)viewModel;
@@ -51,7 +52,6 @@ NS_SWIFT_NAME(ListBindingSectionControllerSelectionDelegate)
@param index The index of the highlighted cell.
@param viewModel The view model that was bound to the cell.
*/
-@optional
- (void)sectionController:(IGListBindingSectionController *)sectionController
didHighlightItemAtIndex:(NSInteger)index
viewModel:(id)viewModel;
@@ -63,7 +63,6 @@ NS_SWIFT_NAME(ListBindingSectionControllerSelectionDelegate)
@param index The index of the unhighlighted cell.
@param viewModel The view model that was bound to the cell.
*/
-@optional
- (void)sectionController:(IGListBindingSectionController *)sectionController
didUnhighlightItemAtIndex:(NSInteger)index
viewModel:(id)viewModel;
diff --git a/Source/IGListCollectionView.h b/Source/IGListCollectionView.h
index 5fb505954..c9e9a961d 100644
--- a/Source/IGListCollectionView.h
+++ b/Source/IGListCollectionView.h
@@ -39,6 +39,9 @@ NS_SWIFT_NAME(ListCollectionView)
*/
- (instancetype)initWithFrame:(CGRect)frame collectionViewLayout:(UICollectionViewLayout *)collectionViewLayout NS_UNAVAILABLE;
+/**
+ :nodoc:
+ */
- (instancetype)initWithCoder:(NSCoder *)aDecoder NS_UNAVAILABLE;
@end
diff --git a/Source/IGListScrollDelegate.h b/Source/IGListScrollDelegate.h
index 6ce78366f..f2546e21e 100644
--- a/Source/IGListScrollDelegate.h
+++ b/Source/IGListScrollDelegate.h
@@ -46,6 +46,8 @@ NS_SWIFT_NAME(ListScrollDelegate)
*/
- (void)listAdapter:(IGListAdapter *)listAdapter didEndDraggingSectionController:(IGListSectionController *)sectionController willDecelerate:(BOOL)decelerate;
+@optional
+
/**
Tells the delegate that the section controller did end decelerating on screen.
@@ -54,7 +56,6 @@ NS_SWIFT_NAME(ListScrollDelegate)
@note This method is `@optional` until the next breaking-change release.
*/
-@optional
- (void)listAdapter:(IGListAdapter *)listAdapter didEndDeceleratingSectionController:(IGListSectionController *)sectionController;
@end
diff --git a/Source/IGListSingleSectionController.h b/Source/IGListSingleSectionController.h
index 5b3627143..745d45062 100644
--- a/Source/IGListSingleSectionController.h
+++ b/Source/IGListSingleSectionController.h
@@ -53,6 +53,8 @@ NS_SWIFT_NAME(ListSingleSectionControllerDelegate)
- (void)didSelectSectionController:(IGListSingleSectionController *)sectionController
withObject:(id)object;
+@optional
+
/**
Tells the delegate that the section controller was deselected.
@@ -61,7 +63,6 @@ NS_SWIFT_NAME(ListSingleSectionControllerDelegate)
@note Method is `@optional` until the 4.0.0 release where it will become required.
*/
-@optional
- (void)didDeselectSectionController:(IGListSingleSectionController *)sectionController
withObject:(id)object;
diff --git a/docs/Classes.html b/docs/Classes.html
index 2ecb9d343..9ae1dfeb3 100644
--- a/docs/Classes.html
+++ b/docs/Classes.html
@@ -74,6 +74,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -118,8 +121,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -137,6 +143,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -155,6 +164,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -170,6 +182,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -262,13 +277,13 @@ Classes
Declaration
Objective-C
-
+
@interface IGListAdapter : NSObject
Swift
-
class ListAdapter : NSObject
+
class ListAdapter : NSObject
@@ -308,13 +323,13 @@ Declaration
Declaration
Swift
-
class ListAdapterUpdater : NSObject , ListUpdatingDelegate
+
class ListAdapterUpdater : NSObject , ListUpdatingDelegate
@@ -348,13 +363,13 @@ Declaration
Declaration
Objective-C
-
+
@interface IGListBatchUpdateData : NSObject
Swift
-
class ListBatchUpdateData : NSObject
+
class ListBatchUpdateData : NSObject
@@ -386,15 +401,15 @@ Declaration
can create new view models via the data source, create a diff, and update the specific cells that have changed.
In Objective-C, your -isEqualToDiffableObject:
can simply be:
-- (BOOL)isEqualToDiffableObject:(id)object {
- return YES;
-}
+- ( BOOL ) isEqualToDiffableObject :( id ) object {
+ return YES ;
+}
In Swift:
-func isEqual(toDiffableObject object: IGListDiffable?) -> Bool {
- return true
-}
+func isEqual ( toDiffableObject object : IGListDiffable ?) -> Bool {
+ return true
+}
Only when -diffIdentifier
s match is object equality compared, so you can assume the class is the same, and the
@@ -406,7 +421,7 @@
Declaration
Declaration
+
+
+
+
+
+
+
+
+
+
This UICollectionView
subclass allows for partial layout invalidation using IGListCollectionViewLayout
.
+
+
Note
+ When updating a collection view (ex: calling
-insertSections
),
-invalidateLayoutWithContext
gets called on
+the layout object. However, the invalidation context doesn’t provide details on which index paths are being modified,
+which typically forces a full layout re-calculation.
IGListCollectionView
gives
IGListCollectionViewLayout
the
+missing information to re-calculate only the modified layout attributes.
+
+
+
+
See more
+
+
+
Declaration
+
+
Objective-C
+
+@interface IGListCollectionView : UICollectionView
+
+
+
+
Swift
+
class ListCollectionView : UICollectionView
+
+
+
+
+
+
+
+
@@ -445,11 +506,11 @@ Declaration
All UICollectionViewDelegateFlowLayout methods are required and used by this layout:
-
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath;
-- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section;
-- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section;
-- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section;
-- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section;
+- ( CGSize ) collectionView :( UICollectionView * ) collectionView layout :( UICollectionViewLayout * ) collectionViewLayout sizeForItemAtIndexPath :( NSIndexPath * ) indexPath ;
+- ( UIEdgeInsets ) collectionView :( UICollectionView * ) collectionView layout :( UICollectionViewLayout * ) collectionViewLayout insetForSectionAtIndex :( NSInteger ) section ;
+- ( CGFloat ) collectionView :( UICollectionView * ) collectionView layout :( UICollectionViewLayout * ) collectionViewLayout minimumLineSpacingForSectionAtIndex :( NSInteger ) section ;
+- ( CGFloat ) collectionView :( UICollectionView * ) collectionView layout :( UICollectionViewLayout * ) collectionViewLayout minimumInteritemSpacingForSectionAtIndex :( NSInteger ) section ;
+- ( CGSize ) collectionView :( UICollectionView * ) collectionView layout :( UICollectionViewLayout * ) collectionViewLayout referenceSizeForHeaderInSection :( NSInteger ) section ;
In a vertically scrolling layout, sections and items are put into the same horizontal row until the max-x position
@@ -457,25 +518,25 @@
Declaration
The y position of that row is determined by the maximum height (including section insets) of the section/item of the previous row.
Ex. of a section (2,0) with a large width causing a newline.
-|[ 0,0 ][ 1,0 ] |
-|[ 2,0 ]|
+| [ 0 , 0 ][ 1 , 0 ] |
+| [ 2 , 0 ] |
A section with a non-zero height header will always cause that section to newline. Headers are always stretched to the
width of the collection view, pinched with the section insets.
Ex. of a section (2,0) with a header inset on the left/right.
-|[ 0,0 ][ 1,0 ] |
-| >======header=======< |
-| [ 2,0 ] |
+| [ 0 , 0 ][ 1 , 0 ] |
+| >====== header =======< |
+| [ 2 , 0 ] |
Section insets apply to items in the section no matter if they begin on a new row or are on the same row as a previous
section.
Ex. of a section (2) with multiple items and a left inset.
-|[ 0,0 ][ 1,0 ] >[ 2,0 ]|
-| >[ 2,1 ][ 2,2 ][ 2,3 ]|
+| [ 0 , 0 ][ 1 , 0 ] > [ 2 , 0 ] |
+| > [ 2 , 1 ][ 2 , 2 ][ 2 , 3 ] |
Interitem spacing applies to items and sections within the same row. Line spacing only applies to items within the same
@@ -492,13 +553,13 @@
Declaration
Declaration
Objective-C
-
+
@interface IGListCollectionViewLayout : UICollectionViewLayout
Swift
-
class ListCollectionViewLayout : UICollectionViewLayout
+
class ListCollectionViewLayout : UICollectionViewLayout
@@ -531,13 +592,13 @@ Declaration
Declaration
Swift
-
class ListGenericSectionController
+
class ListGenericSectionController < ObjectType > : ListSectionController where ObjectType : AnyObject
@@ -569,13 +630,13 @@ Declaration
Declaration
Objective-C
-
+
@interface IGListIndexPathResult : NSObject
Swift
-
class ListIndexPathResult : NSObject
+
class ListIndexPathResult : NSObject
@@ -607,13 +668,13 @@ Declaration
Declaration
Objective-C
-
+
@interface IGListIndexSetResult : NSObject
Swift
-
class ListIndexSetResult : NSObject
+
class ListIndexSetResult : NSObject
@@ -645,13 +706,13 @@ Declaration
Declaration
Objective-C
-
+
@interface IGListMoveIndex : NSObject
Swift
-
class ListMoveIndex : NSObject
+
class ListMoveIndex : NSObject
@@ -683,13 +744,13 @@ Declaration
Declaration
Objective-C
-
+
@interface IGListMoveIndexPath : NSObject
Swift
-
class ListMoveIndexPath : NSObject
+
class ListMoveIndexPath : NSObject
@@ -726,13 +787,13 @@ Declaration
Declaration
Swift
-
class ListReloadDataUpdater : NSObject , ListUpdatingDelegate
+
class ListReloadDataUpdater : NSObject , ListUpdatingDelegate
@@ -764,13 +825,13 @@ Declaration
Declaration
Objective-C
-
+
@interface IGListSectionController : NSObject
Swift
-
class ListSectionController : NSObject
+
class ListSectionController : NSObject
@@ -804,13 +865,13 @@ Declaration
Declaration
Swift
-
class ListSingleSectionController : ListSectionController
+
class ListSingleSectionController : ListSectionController
@@ -849,13 +910,13 @@ Declaration
Declaration
Swift
-
class ListStackedSectionController : ListSectionController
+
class ListStackedSectionController : ListSectionController
@@ -867,8 +928,8 @@ Declaration
diff --git a/docs/Classes/IGListAdapter.html b/docs/Classes/IGListAdapter.html
index 84035e3cd..84cf40c11 100644
--- a/docs/Classes/IGListAdapter.html
+++ b/docs/Classes/IGListAdapter.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListAdapter
-
+
@interface IGListAdapter : NSObject
@@ -269,12 +284,12 @@
IGListAdapter
Declaration
Objective-C
-
@property ( readwrite , nonatomic , nullable ) UIViewController * viewController ;
+
@property ( readwrite , nonatomic , nullable ) UIViewController * viewController ;
Swift
-
weak var viewController : UIViewController ? { get set }
+
weak var viewController : UIViewController ? { get set }
@@ -306,12 +321,12 @@ Declaration
Declaration
Objective-C
-
@property ( readwrite , nonatomic , nullable ) UICollectionView * collectionView ;
+
@property ( readwrite , nonatomic , nullable ) UICollectionView * collectionView ;
Swift
-
weak var collectionView : UICollectionView ? { get set }
+
weak var collectionView : UICollectionView ? { get set }
@@ -338,13 +353,13 @@ Declaration
Declaration
Swift
-
weak var dataSource : ListAdapterDataSource ? { get set }
+
weak var dataSource : ListAdapterDataSource ? { get set }
@@ -371,12 +386,12 @@ Declaration
Declaration
@@ -408,13 +423,13 @@ Declaration
Declaration
Objective-C
-
@property ( readwrite , nonatomic , nullable ) id < UICollectionViewDelegate >
+ @property ( readwrite , nonatomic , nullable ) id < UICollectionViewDelegate >
collectionViewDelegate ;
Swift
-
weak var collectionViewDelegate : UICollectionViewDelegate ? { get set }
+
weak var collectionViewDelegate : UICollectionViewDelegate ? { get set }
@@ -441,13 +456,13 @@ Declaration
Declaration
Objective-C
-
@property ( readwrite , nonatomic , nullable ) id < UIScrollViewDelegate >
+ @property ( readwrite , nonatomic , nullable ) id < UIScrollViewDelegate >
scrollViewDelegate ;
Swift
-
weak var scrollViewDelegate : UIScrollViewDelegate ? { get set }
+
weak var scrollViewDelegate : UIScrollViewDelegate ? { get set }
@@ -474,7 +489,7 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic )
+ @property ( readonly , strong , nonatomic )
id < IGListUpdatingDelegate > _Nonnull updater ;
@@ -502,12 +517,12 @@ Declaration
Declaration
@@ -544,7 +559,7 @@ Declaration
Declaration
Objective-C
-
- ( nonnull instancetype )
+ - ( nonnull instancetype )
initWithUpdater :( nonnull id < IGListUpdatingDelegate > ) updater
viewController :( nullable UIViewController * ) viewController
workingRangeSize :( NSInteger ) workingRangeSize ;
@@ -621,7 +636,7 @@ Return Value
Declaration
Objective-C
-
- ( nonnull instancetype )
+ - ( nonnull instancetype )
initWithUpdater :( nonnull id < IGListUpdatingDelegate > ) updater
viewController :( nullable UIViewController * ) viewController ;
@@ -686,13 +701,13 @@ Return Value
Declaration
Objective-C
-
- ( void ) performUpdatesAnimated :( BOOL ) animated
+ - ( void ) performUpdatesAnimated :( BOOL ) animated
completion :( nullable IGListUpdaterCompletion ) completion ;
Swift
-
func performUpdates ( animated : Bool , completion : ListUpdaterCompletion ? = nil )
+
func performUpdates ( animated : Bool , completion : ListUpdaterCompletion ? = nil )
@@ -744,18 +759,24 @@ Parameters
Perform an immediate reload of the data in the data source, discarding the old objects.
+
+
Warning
+
Do not use this method to update without animations as it can be very expensive to teardown and rebuild all
+section controllers. Use -[IGListAdapter performUpdatesAnimated:completion]
instead.
+
+
Declaration
Swift
-
func reloadData ( completion : ListUpdaterCompletion ? = nil )
+
func reloadData ( completion : ListUpdaterCompletion ? = nil )
@@ -801,12 +822,12 @@ Parameters
Declaration
Objective-C
-
- ( void ) reloadObjects :( nonnull NSArray * ) objects ;
+
- ( void ) reloadObjects :( nonnull NSArray * ) objects ;
Swift
-
func reloadObjects ( _ objects : [ Any ])
+
func reloadObjects ( _ objects : [ Any ])
@@ -852,13 +873,13 @@ Parameters
Declaration
@@ -908,13 +929,13 @@ Return Value
Declaration
Objective-C
-
- ( NSInteger ) sectionForSectionController :
+ - ( NSInteger ) sectionForSectionController :
( nonnull IGListSectionController * ) sectionController ;
@@ -969,13 +990,13 @@ Return Value
Declaration
@@ -1025,13 +1046,13 @@ Return Value
Declaration
Objective-C
-
- ( nullable id ) objectForSectionController :
+ - ( nullable id ) objectForSectionController :
( nonnull IGListSectionController * ) sectionController ;
@@ -1081,12 +1102,12 @@ Return Value
Declaration
Objective-C
-
- ( nullable id ) objectAtSection :( NSInteger ) section ;
+
- ( nullable id ) objectAtSection :( NSInteger ) section ;
Swift
-
func object ( atSection section : Int ) -> Any ?
+
func object ( atSection section : Int ) -> Any ?
@@ -1136,12 +1157,12 @@ Return Value
Declaration
Objective-C
-
- ( NSInteger ) sectionForObject :( nonnull id ) object ;
+
- ( NSInteger ) sectionForObject :( nonnull id ) object ;
Swift
-
func section ( for object : Any ) -> Int
+
func section ( for object : Any ) -> Int
@@ -1191,12 +1212,12 @@ Return Value
Declaration
Objective-C
-
- ( nonnull NSArray * ) objects ;
+
- ( nonnull NSArray * ) objects ;
Swift
-
func objects () -> [ Any ]
+
func objects () -> [ Any ]
@@ -1227,12 +1248,12 @@ Return Value
Declaration
@@ -1263,12 +1284,12 @@ Return Value
Declaration
Objective-C
-
- ( nonnull NSArray * ) visibleObjects ;
+
- ( nonnull NSArray * ) visibleObjects ;
Swift
-
func visibleObjects () -> [ Any ]
+
func visibleObjects () -> [ Any ]
@@ -1299,13 +1320,13 @@ Return Value
Declaration
Objective-C
-
- ( nonnull NSArray < UICollectionViewCell *> * ) visibleCellsForObject :
+ - ( nonnull NSArray < UICollectionViewCell *> * ) visibleCellsForObject :
( nonnull id ) object ;
Swift
-
func visibleCells ( for object : Any ) -> [ UICollectionViewCell ]
+
func visibleCells ( for object : Any ) -> [ UICollectionViewCell ]
@@ -1355,7 +1376,7 @@ Return Value
Declaration
Objective-C
-
- ( void ) scrollToObject :( nonnull id ) object
+ - ( void ) scrollToObject :( nonnull id ) object
supplementaryKinds :( nullable NSArray < NSString *> * ) supplementaryKinds
scrollDirection :( UICollectionViewScrollDirection ) scrollDirection
scrollPosition :( UICollectionViewScrollPosition ) scrollPosition
@@ -1364,7 +1385,7 @@ Declaration
Swift
-
func scroll ( to object : Any , supplementaryKinds : [ String ]?, scrollDirection : UICollectionViewScrollDirection , scrollPosition : UICollectionViewScrollPosition , animated : Bool )
+
func scroll ( to object : Any , supplementaryKinds : [ String ]?, scrollDirection : UICollectionViewScrollDirection , scrollPosition : UICollectionViewScrollPosition , animated : Bool )
@@ -1458,12 +1479,12 @@ Parameters
Declaration
Objective-C
-
- ( CGSize ) sizeForItemAtIndexPath :( nonnull NSIndexPath * ) indexPath ;
+
- ( CGSize ) sizeForItemAtIndexPath :( nonnull NSIndexPath * ) indexPath ;
Swift
-
func sizeForItem ( at indexPath : IndexPath ) -> CGSize
+
func sizeForItem ( at indexPath : IndexPath ) -> CGSize
@@ -1513,13 +1534,13 @@ Return Value
Declaration
Objective-C
-
- ( CGSize ) sizeForSupplementaryViewOfKind :( nonnull NSString * ) elementKind
+ - ( CGSize ) sizeForSupplementaryViewOfKind :( nonnull NSString * ) elementKind
atIndexPath :( nonnull NSIndexPath * ) indexPath ;
Swift
-
func sizeForSupplementaryView ( ofKind elementKind : String , at indexPath : IndexPath ) -> CGSize
+
func sizeForSupplementaryView ( ofKind elementKind : String , at indexPath : IndexPath ) -> CGSize
@@ -1561,13 +1582,122 @@ Return Value
+
+
+
+
+
+
+
+
Adds a listener to the list adapter.
+
+
+
+
+
Declaration
+
+
+
Swift
+
func add ( _ updateListener : ListAdapterUpdateListener )
+
+
+
+
+
Parameters
+
+
+
+
+
+ updateListener
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Removes a listener from the list adapter.
+
+
+
+
Declaration
+
+
+
Swift
+
func remove ( _ updateListener : ListAdapterUpdateListener )
+
+
+
+
+
Parameters
+
+
+
+
+
+ updateListener
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Classes/IGListAdapterUpdater.html b/docs/Classes/IGListAdapterUpdater.html
index 39d51e21c..a25766b65 100644
--- a/docs/Classes/IGListAdapterUpdater.html
+++ b/docs/Classes/IGListAdapterUpdater.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListAdapterUpdater
@@ -272,13 +287,13 @@
IGListAdapterUpdater
Declaration
Swift
-
weak var delegate : ListAdapterUpdaterDelegate ? { get set }
+
weak var delegate : ListAdapterUpdaterDelegate ? { get set }
@@ -305,12 +320,12 @@ Declaration
Declaration
Objective-C
-
@property ( assign , readwrite , nonatomic ) BOOL movesAsDeletesInserts ;
+
@property ( assign , readwrite , nonatomic ) BOOL movesAsDeletesInserts ;
Swift
-
var movesAsDeletesInserts : Bool { get set }
+
var movesAsDeletesInserts : Bool { get set }
@@ -349,12 +364,12 @@ Declaration
Declaration
Objective-C
-
@property ( assign , readwrite , nonatomic ) BOOL allowsBackgroundReloading ;
+
@property ( assign , readwrite , nonatomic ) BOOL allowsBackgroundReloading ;
Swift
-
var allowsBackgroundReloading : Bool { get set }
+
var allowsBackgroundReloading : Bool { get set }
@@ -381,12 +396,12 @@ Declaration
Declaration
@@ -398,8 +413,8 @@ Declaration
diff --git a/docs/Classes/IGListBatchUpdateData.html b/docs/Classes/IGListBatchUpdateData.html
index ac0c4c042..b3a83888a 100644
--- a/docs/Classes/IGListBatchUpdateData.html
+++ b/docs/Classes/IGListBatchUpdateData.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListBatchUpdateData
-
+
@interface IGListBatchUpdateData : NSObject
@@ -266,12 +281,12 @@
IGListBatchUpdateData
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic ) NSIndexSet * _Nonnull insertSections ;
+
@property ( readonly , strong , nonatomic ) NSIndexSet * _Nonnull insertSections ;
Swift
-
var insertSections : IndexSet { get }
+
var insertSections : IndexSet { get }
@@ -298,12 +313,12 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic ) NSIndexSet * _Nonnull deleteSections ;
+
@property ( readonly , strong , nonatomic ) NSIndexSet * _Nonnull deleteSections ;
Swift
-
var deleteSections : IndexSet { get }
+
var deleteSections : IndexSet { get }
@@ -330,13 +345,13 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic )
+ @property ( readonly , strong , nonatomic )
NSSet < IGListMoveIndex *> * _Nonnull moveSections ;
Swift
-
var moveSections : Set
+
var moveSections : Set < ListMoveIndex > { get }
@@ -363,13 +378,13 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic )
+ @property ( readonly , strong , nonatomic )
NSArray < NSIndexPath *> * _Nonnull insertIndexPaths ;
Swift
-
var insertIndexPaths : [ IndexPath ] { get }
+
var insertIndexPaths : [ IndexPath ] { get }
@@ -396,13 +411,13 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic )
+ @property ( readonly , strong , nonatomic )
NSArray < NSIndexPath *> * _Nonnull deleteIndexPaths ;
Swift
-
var deleteIndexPaths : [ IndexPath ] { get }
+
var deleteIndexPaths : [ IndexPath ] { get }
@@ -429,13 +444,13 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic )
+ @property ( readonly , strong , nonatomic )
NSArray < IGListMoveIndexPath *> * _Nonnull moveIndexPaths ;
Swift
-
var moveIndexPaths : [ ListMoveIndexPath ] { get }
+
var moveIndexPaths : [ ListMoveIndexPath ] { get }
@@ -462,7 +477,7 @@ Declaration
Declaration
Objective-C
-
- ( nonnull instancetype )
+ - ( nonnull instancetype )
initWithInsertSections :( nonnull NSIndexSet * ) insertSections
deleteSections :( nonnull NSIndexSet * ) deleteSections
moveSections :( nonnull NSSet < IGListMoveIndex *> * ) moveSections
@@ -473,7 +488,7 @@ Declaration
Swift
-
init ( insertSections : IndexSet , deleteSections : IndexSet , moveSections : Set
+
init ( insertSections : IndexSet , deleteSections : IndexSet , moveSections : Set < ListMoveIndex > , insert insertIndexPaths : [ IndexPath ], delete deleteIndexPaths : [ IndexPath ], moveIndexPaths : [ ListMoveIndexPath ])
@@ -568,8 +583,8 @@ Return Value
diff --git a/docs/Classes/IGListBindingSectionController.html b/docs/Classes/IGListBindingSectionController.html
index 68338ea7b..d0c9ea00a 100644
--- a/docs/Classes/IGListBindingSectionController.html
+++ b/docs/Classes/IGListBindingSectionController.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListBindingSectionController
-
+
@interface IGListBindingSectionController < __covariant ObjectType
: id < IGListDiffable >
> : IGListSectionController @end
@@ -248,15 +263,15 @@ IGListBindingSectionController
can create new view models via the data source, create a diff, and update the specific cells that have changed.
In Objective-C, your -isEqualToDiffableObject:
can simply be:
-- (BOOL)isEqualToDiffableObject:(id)object {
- return YES;
-}
+- ( BOOL ) isEqualToDiffableObject :( id ) object {
+ return YES ;
+}
In Swift:
-func isEqual(toDiffableObject object: IGListDiffable?) -> Bool {
- return true
-}
+func isEqual ( toDiffableObject object : IGListDiffable ?) -> Bool {
+ return true
+}
Only when -diffIdentifier
s match is object equality compared, so you can assume the class is the same, and the
@@ -286,7 +301,7 @@
IGListBindingSectionController
Declaration
Objective-C
-
@property ( readwrite , nonatomic , nullable )
+ @property ( readwrite , nonatomic , nullable )
id < IGListBindingSectionControllerDataSource >
dataSource ;
@@ -315,7 +330,7 @@ Declaration
Declaration
Objective-C
-
@property ( readwrite , nonatomic , nullable )
+ @property ( readwrite , nonatomic , nullable )
id < IGListBindingSectionControllerSelectionDelegate >
selectionDelegate ;
@@ -344,7 +359,7 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic , nullable ) ObjectType object ;
+
@property ( readonly , strong , nonatomic , nullable ) ObjectType object ;
@@ -372,7 +387,7 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic )
+ @property ( readonly , strong , nonatomic )
NSArray < id < IGListDiffable >> * _Nonnull viewModels ;
@@ -400,7 +415,7 @@ Declaration
Declaration
Objective-C
-
- ( void ) updateAnimated :( BOOL ) animated
+ - ( void ) updateAnimated :( BOOL ) animated
completion :( nullable void ( ^ )( BOOL )) completion ;
@@ -444,8 +459,8 @@ Parameters
diff --git a/docs/Classes/IGListCollectionView.html b/docs/Classes/IGListCollectionView.html
new file mode 100644
index 000000000..ab0e3c9fe
--- /dev/null
+++ b/docs/Classes/IGListCollectionView.html
@@ -0,0 +1,352 @@
+
+
+
+ IGListCollectionView Class Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IGListKit Reference
+
+ IGListCollectionView Class Reference
+
+
+
+
+
+
+
+ IGListCollectionView
+
+
+
+@interface IGListCollectionView : UICollectionView
+
+
+
+ This UICollectionView
subclass allows for partial layout invalidation using IGListCollectionViewLayout
.
+
+
Note
+ When updating a collection view (ex: calling
-insertSections
),
-invalidateLayoutWithContext
gets called on
+the layout object. However, the invalidation context doesn’t provide details on which index paths are being modified,
+which typically forces a full layout re-calculation.
IGListCollectionView
gives
IGListCollectionViewLayout
the
+missing information to re-calculate only the modified layout attributes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new view with an IGListcollectionViewLayout
class or subclass.
+
+
Note
+
You can initialize a new view with a base layout by simply calling -[IGListCollectionView initWithFrame:]
.
+
+
+
+
+
+
Declaration
+
+
Objective-C
+
- ( nonnull instancetype ) initWithFrame :( CGRect ) frame
+ listCollectionViewLayout :
+ ( nonnull IGListCollectionViewLayout * ) collectionViewLayout ;
+
+
+
+
+
+
Parameters
+
+
+
+
+
+ frame
+
+
+
+
+
The frame to initialize with.
+
+
+
+
+
+
+ collectionViewLayout
+
+
+
+
+
The layout to use with the collection view.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Classes/IGListCollectionViewLayout.html b/docs/Classes/IGListCollectionViewLayout.html
index 557066edf..c693109e6 100644
--- a/docs/Classes/IGListCollectionViewLayout.html
+++ b/docs/Classes/IGListCollectionViewLayout.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListCollectionViewLayout
-
+
@interface IGListCollectionViewLayout : UICollectionViewLayout
@@ -250,11 +265,11 @@
IGListCollectionViewLayout
All UICollectionViewDelegateFlowLayout methods are required and used by this layout:
-
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath;
-- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section;
-- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section;
-- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section;
-- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section;
+- ( CGSize ) collectionView :( UICollectionView * ) collectionView layout :( UICollectionViewLayout * ) collectionViewLayout sizeForItemAtIndexPath :( NSIndexPath * ) indexPath ;
+- ( UIEdgeInsets ) collectionView :( UICollectionView * ) collectionView layout :( UICollectionViewLayout * ) collectionViewLayout insetForSectionAtIndex :( NSInteger ) section ;
+- ( CGFloat ) collectionView :( UICollectionView * ) collectionView layout :( UICollectionViewLayout * ) collectionViewLayout minimumLineSpacingForSectionAtIndex :( NSInteger ) section ;
+- ( CGFloat ) collectionView :( UICollectionView * ) collectionView layout :( UICollectionViewLayout * ) collectionViewLayout minimumInteritemSpacingForSectionAtIndex :( NSInteger ) section ;
+- ( CGSize ) collectionView :( UICollectionView * ) collectionView layout :( UICollectionViewLayout * ) collectionViewLayout referenceSizeForHeaderInSection :( NSInteger ) section ;
In a vertically scrolling layout, sections and items are put into the same horizontal row until the max-x position
@@ -262,25 +277,25 @@
IGListCollectionViewLayout
The y position of that row is determined by the maximum height (including section insets) of the section/item of the previous row.
Ex. of a section (2,0) with a large width causing a newline.
-|[ 0,0 ][ 1,0 ] |
-|[ 2,0 ]|
+| [ 0 , 0 ][ 1 , 0 ] |
+| [ 2 , 0 ] |
A section with a non-zero height header will always cause that section to newline. Headers are always stretched to the
width of the collection view, pinched with the section insets.
Ex. of a section (2,0) with a header inset on the left/right.
-|[ 0,0 ][ 1,0 ] |
-| >======header=======< |
-| [ 2,0 ] |
+| [ 0 , 0 ][ 1 , 0 ] |
+| >====== header =======< |
+| [ 2 , 0 ] |
Section insets apply to items in the section no matter if they begin on a new row or are on the same row as a previous
section.
Ex. of a section (2) with multiple items and a left inset.
-|[ 0,0 ][ 1,0 ] >[ 2,0 ]|
-| >[ 2,1 ][ 2,2 ][ 2,3 ]|
+| [ 0 , 0 ][ 1 , 0 ] > [ 2 , 0 ] |
+| > [ 2 , 1 ][ 2 , 2 ][ 2 , 3 ] |
Interitem spacing applies to items and sections within the same row. Line spacing only applies to items within the same
@@ -316,12 +331,12 @@
IGListCollectionViewLayout
Declaration
Objective-C
-
@property ( readonly , nonatomic ) UICollectionViewScrollDirection scrollDirection ;
+
@property ( readonly , nonatomic ) UICollectionViewScrollDirection scrollDirection ;
Swift
-
var scrollDirection : UICollectionViewScrollDirection { get }
+
var scrollDirection : UICollectionViewScrollDirection { get }
@@ -355,18 +370,77 @@ Declaration
Declaration
Objective-C
-
@property ( assign , readwrite , nonatomic ) CGFloat stickyHeaderYOffset ;
+
@property ( assign , readwrite , nonatomic ) CGFloat stickyHeaderYOffset ;
Swift
-
var stickyHeaderYOffset : CGFloat { get set }
+
var stickyHeaderYOffset : CGFloat { get set }
+
+
+
+
+
+
+
+
Notify the layout that a specific section was modified before invalidation. Used to optimize layout re-calculation.
+
+
Note
+
When updating a collection view (ex: calling -insertSections
), -invalidateLayoutWithContext
gets called on
+the layout object. However, the invalidation context doesn’t provide details on which index paths are being modified,
+which typically forces a full layout re-calculation. We can use this method to keep track of which section actually
+needs to be updated on the following -invalidateLayoutWithContext
. See IGListCollectionView
.
+
+
+
+
+
+
Declaration
+
+
Objective-C
+
- ( void ) didModifySection :( NSInteger ) modifiedSection ;
+
+
+
+
Swift
+
func didModifySection ( _ modifiedSection : Int )
+
+
+
+
+
Parameters
+
+
+
+
+
+ modifiedSection
+
+
+
+
+
The section that was modified.
+
+
+
+
+
+
+
+
+
@@ -387,7 +461,7 @@ Declaration
Declaration
Objective-C
-
- ( nonnull instancetype )
+ - ( nonnull instancetype )
initWithStickyHeaders :( BOOL ) stickyHeaders
scrollDirection :( UICollectionViewScrollDirection ) scrollDirection
topContentInset :( CGFloat ) topContentInset
@@ -396,7 +470,7 @@ Declaration
Swift
-
init ( stickyHeaders : Bool , scrollDirection : UICollectionViewScrollDirection , topContentInset : CGFloat , stretchToEdge : Bool )
+
init ( stickyHeaders : Bool , scrollDirection : UICollectionViewScrollDirection , topContentInset : CGFloat , stretchToEdge : Bool )
@@ -482,14 +556,14 @@ Return Value
Declaration
Objective-C
-
- ( nonnull instancetype ) initWithStickyHeaders :( BOOL ) stickyHeaders
+ - ( nonnull instancetype ) initWithStickyHeaders :( BOOL ) stickyHeaders
topContentInset :( CGFloat ) topContentInset
stretchToEdge :( BOOL ) stretchToEdge ;
Swift
-
convenience init ( stickyHeaders : Bool , topContentInset : CGFloat , stretchToEdge : Bool )
+
convenience init ( stickyHeaders : Bool , topContentInset : CGFloat , stretchToEdge : Bool )
@@ -548,8 +622,8 @@ Return Value
diff --git a/docs/Classes/IGListGenericSectionController.html b/docs/Classes/IGListGenericSectionController.html
index 159764603..8f5b3ff6b 100644
--- a/docs/Classes/IGListGenericSectionController.html
+++ b/docs/Classes/IGListGenericSectionController.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListGenericSectionController
@@ -273,12 +288,12 @@
IGListGenericSectionController
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic , nullable ) ObjectType object ;
+
@property ( readonly , strong , nonatomic , nullable ) ObjectType object ;
Swift
-
var object : ObjectType ? { get }
+
var object : ObjectType ? { get }
@@ -310,12 +325,12 @@ Declaration
Declaration
Objective-C
-
- ( void ) didUpdateToObject :( nonnull id ) object ;
+
- ( void ) didUpdateToObject :( nonnull id ) object ;
Swift
-
func didUpdate ( to object : Any )
+
func didUpdate ( to object : Any )
@@ -346,8 +361,8 @@ Parameters
diff --git a/docs/Classes/IGListIndexPathResult.html b/docs/Classes/IGListIndexPathResult.html
index f68bd0c73..9a0b536d1 100644
--- a/docs/Classes/IGListIndexPathResult.html
+++ b/docs/Classes/IGListIndexPathResult.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListIndexPathResult
-
+
@interface IGListIndexPathResult : NSObject
@@ -264,12 +279,12 @@
IGListIndexPathResult
Declaration
Objective-C
-
@property ( readonly , copy , nonatomic ) NSArray < NSIndexPath *> * _Nonnull inserts ;
+
@property ( readonly , copy , nonatomic ) NSArray < NSIndexPath *> * _Nonnull inserts ;
Swift
-
var inserts : [ IndexPath ] { get }
+
var inserts : [ IndexPath ] { get }
@@ -296,12 +311,12 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , copy , nonatomic ) NSArray < NSIndexPath *> * _Nonnull deletes ;
+
@property ( readonly , copy , nonatomic ) NSArray < NSIndexPath *> * _Nonnull deletes ;
Swift
-
var deletes : [ IndexPath ] { get }
+
var deletes : [ IndexPath ] { get }
@@ -328,12 +343,12 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , copy , nonatomic ) NSArray < NSIndexPath *> * _Nonnull updates ;
+
@property ( readonly , copy , nonatomic ) NSArray < NSIndexPath *> * _Nonnull updates ;
Swift
-
var updates : [ IndexPath ] { get }
+
var updates : [ IndexPath ] { get }
@@ -360,13 +375,13 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , copy , nonatomic )
+ @property ( readonly , copy , nonatomic )
NSArray < IGListMoveIndexPath *> * _Nonnull moves ;
Swift
-
var moves : [ ListMoveIndexPath ] { get }
+
var moves : [ ListMoveIndexPath ] { get }
@@ -394,12 +409,12 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , assign , nonatomic ) BOOL hasChanges ;
+
@property ( readonly , assign , nonatomic ) BOOL hasChanges ;
Swift
-
var hasChanges : Bool { get }
+
var hasChanges : Bool { get }
@@ -431,13 +446,13 @@ Declaration
Declaration
Objective-C
-
- ( nullable NSIndexPath * ) oldIndexPathForIdentifier :
+ - ( nullable NSIndexPath * ) oldIndexPathForIdentifier :
( nonnull id < NSObject > ) identifier ;
Swift
-
func oldIndexPath ( forIdentifier identifier : NSObjectProtocol ) -> IndexPath ?
+
func oldIndexPath ( forIdentifier identifier : NSObjectProtocol ) -> IndexPath ?
@@ -492,13 +507,13 @@ Return Value
Declaration
Objective-C
-
- ( nullable NSIndexPath * ) newIndexPathForIdentifier :
+ - ( nullable NSIndexPath * ) newIndexPathForIdentifier :
( nonnull id < NSObject > ) identifier ;
Swift
-
func newIndexPath ( forIdentifier identifier : NSObjectProtocol ) -> IndexPath ?
+
func newIndexPath ( forIdentifier identifier : NSObjectProtocol ) -> IndexPath ?
@@ -548,12 +563,12 @@ Return Value
Declaration
Objective-C
-
- ( nonnull IGListIndexPathResult * ) resultForBatchUpdates ;
+
- ( nonnull IGListIndexPathResult * ) resultForBatchUpdates ;
Swift
-
func forBatchUpdates () -> ListIndexPathResult
+
func forBatchUpdates () -> ListIndexPathResult
@@ -565,8 +580,8 @@ Declaration
diff --git a/docs/Classes/IGListIndexSetResult.html b/docs/Classes/IGListIndexSetResult.html
index a2209a3f8..17740d8b0 100644
--- a/docs/Classes/IGListIndexSetResult.html
+++ b/docs/Classes/IGListIndexSetResult.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListIndexSetResult
-
+
@interface IGListIndexSetResult : NSObject
@@ -264,12 +279,12 @@
IGListIndexSetResult
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic ) NSIndexSet * _Nonnull inserts ;
+
@property ( readonly , strong , nonatomic ) NSIndexSet * _Nonnull inserts ;
Swift
-
var inserts : IndexSet { get }
+
var inserts : IndexSet { get }
@@ -296,12 +311,12 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic ) NSIndexSet * _Nonnull deletes ;
+
@property ( readonly , strong , nonatomic ) NSIndexSet * _Nonnull deletes ;
Swift
-
var deletes : IndexSet { get }
+
var deletes : IndexSet { get }
@@ -328,12 +343,12 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic ) NSIndexSet * _Nonnull updates ;
+
@property ( readonly , strong , nonatomic ) NSIndexSet * _Nonnull updates ;
Swift
-
var updates : IndexSet { get }
+
var updates : IndexSet { get }
@@ -360,12 +375,12 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , copy , nonatomic ) NSArray < IGListMoveIndex *> * _Nonnull moves ;
+
@property ( readonly , copy , nonatomic ) NSArray < IGListMoveIndex *> * _Nonnull moves ;
Swift
-
var moves : [ ListMoveIndex ] { get }
+
var moves : [ ListMoveIndex ] { get }
@@ -393,12 +408,12 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , assign , nonatomic ) BOOL hasChanges ;
+
@property ( readonly , assign , nonatomic ) BOOL hasChanges ;
Swift
-
var hasChanges : Bool { get }
+
var hasChanges : Bool { get }
@@ -430,12 +445,12 @@ Declaration
Declaration
Objective-C
-
- ( NSInteger ) oldIndexForIdentifier :( nonnull id < NSObject > ) identifier ;
+
- ( NSInteger ) oldIndexForIdentifier :( nonnull id < NSObject > ) identifier ;
Swift
-
func oldIndex ( forIdentifier identifier : NSObjectProtocol ) -> Int
+
func oldIndex ( forIdentifier identifier : NSObjectProtocol ) -> Int
@@ -490,12 +505,12 @@ Return Value
Declaration
Objective-C
-
- ( NSInteger ) newIndexForIdentifier :( nonnull id < NSObject > ) identifier ;
+
- ( NSInteger ) newIndexForIdentifier :( nonnull id < NSObject > ) identifier ;
Swift
-
func newIndex ( forIdentifier identifier : NSObjectProtocol ) -> Int
+
func newIndex ( forIdentifier identifier : NSObjectProtocol ) -> Int
@@ -545,12 +560,12 @@ Return Value
Declaration
Objective-C
-
- ( nonnull IGListIndexSetResult * ) resultForBatchUpdates ;
+
- ( nonnull IGListIndexSetResult * ) resultForBatchUpdates ;
Swift
-
func forBatchUpdates () -> ListIndexSetResult
+
func forBatchUpdates () -> ListIndexSetResult
@@ -562,8 +577,8 @@ Declaration
diff --git a/docs/Classes/IGListMoveIndex.html b/docs/Classes/IGListMoveIndex.html
index 224fb4117..afde07f2d 100644
--- a/docs/Classes/IGListMoveIndex.html
+++ b/docs/Classes/IGListMoveIndex.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListMoveIndex
-
+
@interface IGListMoveIndex : NSObject
@@ -264,12 +279,12 @@
IGListMoveIndex
Declaration
Objective-C
-
@property ( readonly , assign , nonatomic ) NSInteger from ;
+
@property ( readonly , assign , nonatomic ) NSInteger from ;
Swift
-
var from : Int { get }
+
var from : Int { get }
@@ -296,12 +311,12 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , assign , nonatomic ) NSInteger to ;
+
@property ( readonly , assign , nonatomic ) NSInteger to ;
Swift
-
var to : Int { get }
+
var to : Int { get }
@@ -313,8 +328,8 @@ Declaration
diff --git a/docs/Classes/IGListMoveIndexPath.html b/docs/Classes/IGListMoveIndexPath.html
index 9569a2717..f4a4c69e4 100644
--- a/docs/Classes/IGListMoveIndexPath.html
+++ b/docs/Classes/IGListMoveIndexPath.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListMoveIndexPath
-
+
@interface IGListMoveIndexPath : NSObject
@@ -264,12 +279,12 @@
IGListMoveIndexPath
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic ) NSIndexPath * _Nonnull from ;
+
@property ( readonly , strong , nonatomic ) NSIndexPath * _Nonnull from ;
Swift
-
var from : IndexPath { get }
+
var from : IndexPath { get }
@@ -296,12 +311,12 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , strong , nonatomic ) NSIndexPath * _Nonnull to ;
+
@property ( readonly , strong , nonatomic ) NSIndexPath * _Nonnull to ;
Swift
-
var to : IndexPath { get }
+
var to : IndexPath { get }
@@ -313,8 +328,8 @@ Declaration
diff --git a/docs/Classes/IGListSectionController.html b/docs/Classes/IGListSectionController.html
index 2535037c8..bafba2abf 100644
--- a/docs/Classes/IGListSectionController.html
+++ b/docs/Classes/IGListSectionController.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListSectionController
-
+
@interface IGListSectionController : NSObject
@@ -270,12 +285,12 @@
IGListSectionController
Declaration
Objective-C
-
- ( NSInteger ) numberOfItems ;
+
- ( NSInteger ) numberOfItems ;
Swift
-
func numberOfItems () -> Int
+
func numberOfItems () -> Int
@@ -314,12 +329,12 @@ Return Value
Declaration
Objective-C
-
- ( CGSize ) sizeForItemAtIndex :( NSInteger ) index ;
+
- ( CGSize ) sizeForItemAtIndex :( NSInteger ) index ;
Swift
-
func sizeForItem ( at index : Int ) -> CGSize
+
func sizeForItem ( at index : Int ) -> CGSize
@@ -377,12 +392,12 @@ Return Value
Declaration
Objective-C
-
- ( nonnull __kindof UICollectionViewCell * ) cellForItemAtIndex :( NSInteger ) index ;
+
- ( nonnull __kindof UICollectionViewCell * ) cellForItemAtIndex :( NSInteger ) index ;
Swift
-
func cellForItem ( at index : Int ) -> UICollectionViewCell
+
func cellForItem ( at index : Int ) -> UICollectionViewCell
@@ -439,12 +454,12 @@ Return Value
Declaration
Objective-C
-
- ( void ) didUpdateToObject :( nonnull id ) object ;
+
- ( void ) didUpdateToObject :( nonnull id ) object ;
Swift
-
func didUpdate ( to object : Any )
+
func didUpdate ( to object : Any )
@@ -495,12 +510,12 @@ Parameters
Declaration
Objective-C
-
- ( void ) didSelectItemAtIndex :( NSInteger ) index ;
+
- ( void ) didSelectItemAtIndex :( NSInteger ) index ;
Swift
-
func didSelectItem ( at index : Int )
+
func didSelectItem ( at index : Int )
@@ -551,12 +566,12 @@ Parameters
Declaration
Objective-C
-
- ( void ) didDeselectItemAtIndex :( NSInteger ) index ;
+
- ( void ) didDeselectItemAtIndex :( NSInteger ) index ;
Swift
-
func didDeselectItem ( at index : Int )
+
func didDeselectItem ( at index : Int )
@@ -582,6 +597,118 @@ Parameters
+
+
+
+
+
+
+
+
Tells the section controller that the cell at the specified index path was highlighted.
+
+
Note
+
The default implementation does nothing. Calling super is not required.
+
+
+
+
+
+
Declaration
+
+
Objective-C
+
- ( void ) didHighlightItemAtIndex :( NSInteger ) index ;
+
+
+
+
Swift
+
func didHighlightItem ( at index : Int )
+
+
+
+
+
Parameters
+
+
+
+
+
+ index
+
+
+
+
+
The index of the highlighted cell.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tells the section controller that the cell at the specified index path was unhighlighted.
+
+
Note
+
The default implementation does nothing. Calling super is not required.
+
+
+
+
+
+
Declaration
+
+
Objective-C
+
- ( void ) didUnhighlightItemAtIndex :( NSInteger ) index ;
+
+
+
+
Swift
+
func didUnhighlightItem ( at index : Int )
+
+
+
+
+
Parameters
+
+
+
+
+
+ index
+
+
+
+
+
The index of the unhighlighted cell.
+
+
+
+
+
+
+
+
+
@@ -613,12 +740,12 @@ Parameters
Declaration
Objective-C
-
@property ( readonly , nonatomic , nullable ) UIViewController * viewController ;
+
@property ( readonly , nonatomic , nullable ) UIViewController * viewController ;
Swift
-
weak var viewController : UIViewController ? { get }
+
weak var viewController : UIViewController ? { get }
@@ -647,13 +774,13 @@ Declaration
Declaration
Swift
-
weak var collectionContext : ListCollectionContext ? { get }
+
weak var collectionContext : ListCollectionContext ? { get }
@@ -686,12 +813,12 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , assign , nonatomic ) NSInteger section ;
+
@property ( readonly , assign , nonatomic ) NSInteger section ;
Swift
-
var section : Int { get }
+
var section : Int { get }
@@ -718,12 +845,12 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , assign , nonatomic ) BOOL isFirstSection ;
+
@property ( readonly , assign , nonatomic ) BOOL isFirstSection ;
Swift
-
var isFirstSection : Bool { get }
+
var isFirstSection : Bool { get }
@@ -750,12 +877,12 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , assign , nonatomic ) BOOL isLastSection ;
+
@property ( readonly , assign , nonatomic ) BOOL isLastSection ;
Swift
-
var isLastSection : Bool { get }
+
var isLastSection : Bool { get }
@@ -787,12 +914,12 @@ Declaration
Declaration
Objective-C
-
@property ( assign , readwrite , nonatomic ) UIEdgeInsets inset ;
+
@property ( assign , readwrite , nonatomic ) UIEdgeInsets inset ;
Swift
-
var inset : UIEdgeInsets { get set }
+
var inset : UIEdgeInsets { get set }
@@ -824,12 +951,12 @@ Declaration
Declaration
Objective-C
-
@property ( assign , readwrite , nonatomic ) CGFloat minimumLineSpacing ;
+
@property ( assign , readwrite , nonatomic ) CGFloat minimumLineSpacing ;
Swift
-
var minimumLineSpacing : CGFloat { get set }
+
var minimumLineSpacing : CGFloat { get set }
@@ -861,12 +988,12 @@ Declaration
Declaration
Objective-C
-
@property ( assign , readwrite , nonatomic ) CGFloat minimumInteritemSpacing ;
+
@property ( assign , readwrite , nonatomic ) CGFloat minimumInteritemSpacing ;
Swift
-
var minimumInteritemSpacing : CGFloat { get set }
+
var minimumInteritemSpacing : CGFloat { get set }
@@ -898,13 +1025,13 @@ Declaration
Declaration
Swift
-
weak var supplementaryViewSource : ListSupplementaryViewSource ? { get set }
+
weak var supplementaryViewSource : ListSupplementaryViewSource ? { get set }
@@ -940,13 +1067,13 @@ Return Value
Declaration
Swift
-
weak var displayDelegate : ListDisplayDelegate ? { get set }
+
weak var displayDelegate : ListDisplayDelegate ? { get set }
@@ -982,13 +1109,13 @@ Return Value
Declaration
Swift
-
weak var workingRangeDelegate : ListWorkingRangeDelegate ? { get set }
+
weak var workingRangeDelegate : ListWorkingRangeDelegate ? { get set }
@@ -1024,13 +1151,13 @@ Return Value
Declaration
Swift
-
weak var scrollDelegate : ListScrollDelegate ? { get set }
+
weak var scrollDelegate : ListScrollDelegate ? { get set }
@@ -1041,13 +1168,55 @@ Return Value
+
+
+
+
+
+
+
+
An object that handles transition events for the section controller. Can be nil
.
+
+
Note
+
You may wish to return self
if your section controller implements this protocol.
+
+
+
+
+
+
+
Return Value
+
An object that conforms to IGListTransitionDelegat
or nil
.
+
+
+
+
diff --git a/docs/Classes/IGListSingleSectionController.html b/docs/Classes/IGListSingleSectionController.html
index 1b6b4aa53..4f7339ae3 100644
--- a/docs/Classes/IGListSingleSectionController.html
+++ b/docs/Classes/IGListSingleSectionController.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListSingleSectionController
@@ -272,7 +287,7 @@
IGListSingleSectionController
Declaration
Swift
-
init ( cellClass : AnyClass , configureBlock : @escaping ListSingleSectionCellConfigureBlock , sizeBlock : @escaping ListSingleSectionCellSizeBlock )
+
init ( cellClass : AnyClass , configureBlock : @escaping ListSingleSectionCellConfigureBlock , sizeBlock : @escaping ListSingleSectionCellSizeBlock )
@@ -360,7 +375,7 @@ Return Value
Declaration
Objective-C
-
- ( nonnull instancetype )
+ - ( nonnull instancetype )
initWithNibName :( nonnull NSString * ) nibName
bundle :( nullable NSBundle * ) bundle
configureBlock :( nonnull IGListSingleSectionCellConfigureBlock ) configureBlock
@@ -369,7 +384,7 @@ Declaration
Swift
-
init ( nibName : String , bundle : Bundle ?, configureBlock : @escaping ListSingleSectionCellConfigureBlock , sizeBlock : @escaping ListSingleSectionCellSizeBlock )
+
init ( nibName : String , bundle : Bundle ?, configureBlock : @escaping ListSingleSectionCellConfigureBlock , sizeBlock : @escaping ListSingleSectionCellSizeBlock )
@@ -461,7 +476,7 @@ Return Value
Declaration
Objective-C
-
- ( nonnull instancetype )
+ - ( nonnull instancetype )
initWithStoryboardCellIdentifier :( nonnull NSString * ) identifier
configureBlock :( nonnull IGListSingleSectionCellConfigureBlock )
configureBlock
@@ -471,7 +486,7 @@ Declaration
Swift
-
init ( storyboardCellIdentifier identifier : String , configureBlock : @escaping ListSingleSectionCellConfigureBlock , sizeBlock : @escaping ListSingleSectionCellSizeBlock )
+
init ( storyboardCellIdentifier identifier : String , configureBlock : @escaping ListSingleSectionCellConfigureBlock , sizeBlock : @escaping ListSingleSectionCellSizeBlock )
@@ -545,14 +560,14 @@ Return Value
Declaration
Swift
-
weak var selectionDelegate : ListSingleSectionControllerDelegate ? { get set }
+
weak var selectionDelegate : ListSingleSectionControllerDelegate ? { get set }
@@ -564,8 +579,8 @@ Declaration
diff --git a/docs/Classes/IGListStackedSectionController.html b/docs/Classes/IGListStackedSectionController.html
index d70b13133..f799ab240 100644
--- a/docs/Classes/IGListStackedSectionController.html
+++ b/docs/Classes/IGListStackedSectionController.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListStackedSectionController
@@ -281,13 +296,13 @@
IGListStackedSectionController
Declaration
Objective-C
-
- ( nonnull instancetype ) initWithSectionControllers :
+ - ( nonnull instancetype ) initWithSectionControllers :
( nonnull NSArray < IGListSectionController *> * ) sectionControllers ;
Swift
-
init ( sectionControllers : [ ListSectionController ])
+
init ( sectionControllers : [ ListSectionController ])
@@ -318,8 +333,8 @@ Parameters
diff --git a/docs/Constants.html b/docs/Constants.html
index e8047ed45..8fa6f6b69 100644
--- a/docs/Constants.html
+++ b/docs/Constants.html
@@ -74,6 +74,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -118,8 +121,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -137,6 +143,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -155,6 +164,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -170,6 +182,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -256,12 +271,12 @@ Constants
Declaration
Objective-C
-
extern double IGListKitVersionNumber
+
extern double IGListKitVersionNumber
Swift
-
var IGListKitVersionNumber : Double
+
var IGListKitVersionNumber : Double
@@ -288,7 +303,7 @@ Declaration
Declaration
Objective-C
-
extern const unsigned char IGListKitVersionString []
+
extern const unsigned char IGListKitVersionString []
@@ -300,8 +315,8 @@ Declaration
diff --git a/docs/Enums.html b/docs/Enums.html
index 7828050c8..4778ea645 100644
--- a/docs/Enums.html
+++ b/docs/Enums.html
@@ -1,7 +1,7 @@
- Enums Reference
+ Enumerations Reference
@@ -10,7 +10,7 @@
-
+
+
+
+
+
+
+
+
+
Test a faster way to return visible section controllers.
+
+
+
+
Declaration
+
+
Objective-C
+
IGListExperimentFasterVisibleSectionController = 1 << 4
+
+
+
+
Swift
+
static var fasterVisibleSectionController : IGListExperiment { get }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Test deduping item-level updates.
+
+
+
+
Declaration
+
+
Objective-C
+
IGListExperimentDedupeItemUpdates = 1 << 5
Swift
-
static var reloadDataFallback : IGListExperiment { get }
+
static var dedupeItemUpdates : IGListExperiment { get }
@@ -344,8 +423,8 @@ Declaration
diff --git a/docs/Functions.html b/docs/Functions.html
index 938b28414..f1ed2af02 100644
--- a/docs/Functions.html
+++ b/docs/Functions.html
@@ -74,6 +74,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -118,8 +121,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -137,6 +143,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -155,6 +164,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -170,6 +182,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -256,14 +271,14 @@ Functions
Declaration
Swift
-
func ListDiff ( oldArray : [ ListDiffable ]?, newArray : [ ListDiffable ]?, option : IGListDiffOption ) -> ListIndexSetResult
+
func ListDiff ( oldArray : [ ListDiffable ]?, newArray : [ ListDiffable ]?, option : IGListDiffOption ) -> ListIndexSetResult
@@ -337,7 +352,7 @@ Return Value
Declaration
Swift
-
func ListDiffPaths ( fromSection : Int , toSection : Int , oldArray : [ ListDiffable ]?, newArray : [ ListDiffable ]?, option : IGListDiffOption ) -> ListIndexPathResult
+
func ListDiffPaths ( fromSection : Int , toSection : Int , oldArray : [ ListDiffable ]?, newArray : [ ListDiffable ]?, option : IGListDiffOption ) -> ListIndexPathResult
@@ -447,13 +462,13 @@ Return Value
Declaration
@@ -520,7 +535,7 @@ Return Value
Declaration
Swift
-
func ListDiffExperiment ( oldArray : [ ListDiffable ]?, newArray : [ ListDiffable ]?, option : IGListDiffOption , experiments : IGListExperiment ) -> ListIndexSetResult
+
func ListDiffExperiment ( oldArray : [ ListDiffable ]?, newArray : [ ListDiffable ]?, option : IGListDiffOption , experiments : IGListExperiment ) -> ListIndexSetResult
@@ -619,7 +634,7 @@ Return Value
Declaration
Swift
-
func ListDiffPathsExperiment ( fromSection : Int , toSection : Int , oldArray : [ ListDiffable ]?, newArray : [ ListDiffable ]?, option : IGListDiffOption , experiments : IGListExperiment ) -> ListIndexPathResult
+
func ListDiffPathsExperiment ( fromSection : Int , toSection : Int , oldArray : [ ListDiffable ]?, newArray : [ ListDiffable ]?, option : IGListDiffOption , experiments : IGListExperiment ) -> ListIndexPathResult
@@ -723,8 +738,8 @@ Return Value
diff --git a/docs/Guides.html b/docs/Guides.html
index a850ee83f..7a0f34543 100644
--- a/docs/Guides.html
+++ b/docs/Guides.html
@@ -74,6 +74,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -118,8 +121,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -137,6 +143,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -155,6 +164,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -170,6 +182,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -237,8 +252,8 @@ Guides
diff --git a/docs/Protocols.html b/docs/Protocols.html
index b61b15f49..e031c7e87 100644
--- a/docs/Protocols.html
+++ b/docs/Protocols.html
@@ -74,6 +74,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -118,8 +121,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -137,6 +143,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -155,6 +164,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -170,6 +182,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -257,12 +272,12 @@ Protocols
Declaration
Objective-C
-
@protocol IGListAdapterDataSource < NSObject >
+
@protocol IGListAdapterDataSource < NSObject >
Swift
-
protocol ListAdapterDataSource : NSObjectProtocol
+
protocol ListAdapterDataSource : NSObjectProtocol
@@ -294,12 +309,49 @@ Declaration
Declaration
Objective-C
-
@protocol IGListAdapterDelegate < NSObject >
+
@protocol IGListAdapterDelegate < NSObject >
+
+
+
+
Swift
+
protocol IGListAdapterDelegate : NSObjectProtocol
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
Objective-C
+
@protocol IGListAdapterUpdateListener < NSObject >
Swift
-
protocol IGListAdapterDelegate : NSObjectProtocol
+
protocol ListAdapterUpdateListener : NSObjectProtocol
@@ -331,12 +383,12 @@ Declaration
Declaration
Objective-C
-
@protocol IGListAdapterUpdaterDelegate < NSObject >
+
@protocol IGListAdapterUpdaterDelegate < NSObject >
Swift
-
protocol ListAdapterUpdaterDelegate : NSObjectProtocol
+
protocol ListAdapterUpdaterDelegate : NSObjectProtocol
@@ -369,12 +421,12 @@ Declaration
Declaration
Objective-C
-
@protocol IGListBatchContext < NSObject >
+
@protocol IGListBatchContext < NSObject >
Swift
-
protocol ListBatchContext : NSObjectProtocol
+
protocol ListBatchContext : NSObjectProtocol
@@ -406,12 +458,12 @@ Declaration
Declaration
Objective-C
-
@protocol IGListBindable < NSObject >
+
@protocol IGListBindable < NSObject >
Swift
-
protocol ListBindable : NSObjectProtocol
+
protocol ListBindable : NSObjectProtocol
@@ -443,12 +495,12 @@ Declaration
Declaration
Objective-C
-
@protocol IGListBindingSectionControllerDataSource < NSObject >
+
@protocol IGListBindingSectionControllerDataSource < NSObject >
Swift
-
protocol ListBindingSectionControllerDataSource : NSObjectProtocol
+
protocol ListBindingSectionControllerDataSource : NSObjectProtocol
@@ -480,12 +532,12 @@ Declaration
Declaration
Objective-C
-
@protocol IGListBindingSectionControllerSelectionDelegate < NSObject >
+
@protocol IGListBindingSectionControllerSelectionDelegate < NSObject >
Swift
-
protocol ListBindingSectionControllerSelectionDelegate : NSObjectProtocol
+
protocol ListBindingSectionControllerSelectionDelegate : NSObjectProtocol
@@ -518,12 +570,50 @@ Declaration
Declaration
Objective-C
-
@protocol IGListCollectionContext < NSObject >
+
@protocol IGListCollectionContext < NSObject >
+
+
+
+
Swift
+
protocol ListCollectionContext : NSObjectProtocol
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Conform to IGListCollectionViewDelegateLayout
to provide customized layout information for a collection view.
+
+
See more
+
+
+
Declaration
+
+
Objective-C
+
@protocol
+ IGListCollectionViewDelegateLayout < UICollectionViewDelegateFlowLayout >
Swift
-
protocol ListCollectionContext : NSObjectProtocol
+
protocol IGListCollectionViewDelegateLayout : UICollectionViewDelegateFlowLayout
@@ -555,12 +645,12 @@ Declaration
Declaration
Objective-C
-
@protocol IGListDiffable
+
@protocol IGListDiffable
Swift
-
protocol ListDiffable
+
protocol ListDiffable
@@ -592,12 +682,12 @@ Declaration
Declaration
Objective-C
-
@protocol IGListDisplayDelegate < NSObject >
+
@protocol IGListDisplayDelegate < NSObject >
Swift
-
protocol ListDisplayDelegate : NSObjectProtocol
+
protocol ListDisplayDelegate : NSObjectProtocol
@@ -629,12 +719,12 @@ Declaration
Declaration
Objective-C
-
@protocol IGListScrollDelegate < NSObject >
+
@protocol IGListScrollDelegate < NSObject >
Swift
-
protocol ListScrollDelegate : NSObjectProtocol
+
protocol ListScrollDelegate : NSObjectProtocol
@@ -666,12 +756,12 @@ Declaration
Declaration
Objective-C
-
@protocol IGListSingleSectionControllerDelegate < NSObject >
+
@protocol IGListSingleSectionControllerDelegate < NSObject >
Swift
-
protocol ListSingleSectionControllerDelegate : NSObjectProtocol
+
protocol ListSingleSectionControllerDelegate : NSObjectProtocol
@@ -705,12 +795,49 @@ Declaration
Declaration
Objective-C
-
@protocol IGListSupplementaryViewSource < NSObject >
+
@protocol IGListSupplementaryViewSource < NSObject >
+
+
+
+
Swift
+
protocol ListSupplementaryViewSource : NSObjectProtocol
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Conform to IGListTransitionDelegate
to provide customized layout information for a collection view.
+
+
See more
+
+
+
Declaration
+
+
Objective-C
+
@protocol IGListTransitionDelegate < NSObject >
Swift
-
protocol ListSupplementaryViewSource : NSObjectProtocol
+
protocol IGListTransitionDelegate
@@ -743,12 +870,12 @@ Declaration
Declaration
Objective-C
-
@protocol IGListUpdatingDelegate < NSObject >
+
@protocol IGListUpdatingDelegate < NSObject >
Swift
-
protocol ListUpdatingDelegate : NSObjectProtocol
+
protocol ListUpdatingDelegate : NSObjectProtocol
@@ -783,12 +910,12 @@ Declaration
Declaration
Objective-C
-
@protocol IGListWorkingRangeDelegate < NSObject >
+
@protocol IGListWorkingRangeDelegate < NSObject >
Swift
-
protocol ListWorkingRangeDelegate : NSObjectProtocol
+
protocol ListWorkingRangeDelegate : NSObjectProtocol
@@ -800,8 +927,8 @@ Declaration
diff --git a/docs/Protocols/IGListAdapterDataSource.html b/docs/Protocols/IGListAdapterDataSource.html
index 6fd87ccfa..1c5ab2cad 100644
--- a/docs/Protocols/IGListAdapterDataSource.html
+++ b/docs/Protocols/IGListAdapterDataSource.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListAdapterDataSource
-
@protocol IGListAdapterDataSource < NSObject >
+
@protocol IGListAdapterDataSource < NSObject >
@@ -263,13 +278,13 @@ IGListAdapterDataSource
Declaration
Swift
-
func objects ( for listAdapter : IGListAdapter ) -> [ ListDiffable ]
+
func objects ( for listAdapter : IGListAdapter ) -> [ ListDiffable ]
@@ -329,14 +344,14 @@ Return Value
Declaration
@@ -405,13 +420,13 @@ Return Value
Declaration
Objective-C
-
- ( nullable UIView * ) emptyViewForListAdapter :
+ - ( nullable UIView * ) emptyViewForListAdapter :
( nonnull IGListAdapter * ) listAdapter ;
@@ -446,8 +461,8 @@ Return Value
diff --git a/docs/Protocols/IGListAdapterDelegate.html b/docs/Protocols/IGListAdapterDelegate.html
index 6a6d0e33b..383895b3a 100644
--- a/docs/Protocols/IGListAdapterDelegate.html
+++ b/docs/Protocols/IGListAdapterDelegate.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListAdapterDelegate
-
@protocol IGListAdapterDelegate < NSObject >
+
@protocol IGListAdapterDelegate < NSObject >
@@ -263,14 +278,14 @@ IGListAdapterDelegate
Declaration
Objective-C
-
- ( void ) listAdapter :( nonnull IGListAdapter * ) listAdapter
+ - ( void ) listAdapter :( nonnull IGListAdapter * ) listAdapter
willDisplayObject :( nonnull id ) object
atIndex :( NSInteger ) index ;
Swift
-
func listAdapter ( _ listAdapter : IGListAdapter , willDisplay object : Any , at index : Int )
+
func listAdapter ( _ listAdapter : IGListAdapter , willDisplay object : Any , at index : Int )
@@ -340,14 +355,14 @@ Parameters
Declaration
Objective-C
-
- ( void ) listAdapter :( nonnull IGListAdapter * ) listAdapter
+ - ( void ) listAdapter :( nonnull IGListAdapter * ) listAdapter
didEndDisplayingObject :( nonnull id ) object
atIndex :( NSInteger ) index ;
Swift
-
func listAdapter ( _ listAdapter : IGListAdapter , didEndDisplaying object : Any , at index : Int )
+
func listAdapter ( _ listAdapter : IGListAdapter , didEndDisplaying object : Any , at index : Int )
@@ -402,8 +417,8 @@ Parameters
diff --git a/docs/Protocols/IGListAdapterUpdateListener.html b/docs/Protocols/IGListAdapterUpdateListener.html
new file mode 100644
index 000000000..6ac93f94b
--- /dev/null
+++ b/docs/Protocols/IGListAdapterUpdateListener.html
@@ -0,0 +1,357 @@
+
+
+
+ IGListAdapterUpdateListener Protocol Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IGListKit Reference
+
+ IGListAdapterUpdateListener Protocol Reference
+
+
+
+
+
+
+
+ IGListAdapterUpdateListener
+
+
+
@protocol IGListAdapterUpdateListener < NSObject >
+
+
+
+ Conform to this protocol to receive events about IGListAdapter
updates.
+
+
+
+
+
+
+
+
+
+
+
+
+
Notifies a listener that the listAdapter was updated.
+
+
+
+
+
+
Parameters
+
+
+
+
+
+ listAdapter
+
+
+
+
+
+
+
+
+
+ update
+
+
+
+
+
The type of update executed.
+
+
+
+
+
+
+ animated
+
+
+
+
+
A flag indicating if the update was animated. Always NO
for IGListAdapterUpdateTypeReloadData
.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Protocols/IGListAdapterUpdaterDelegate.html b/docs/Protocols/IGListAdapterUpdaterDelegate.html
index bbd38183a..b58d1acbe 100644
--- a/docs/Protocols/IGListAdapterUpdaterDelegate.html
+++ b/docs/Protocols/IGListAdapterUpdaterDelegate.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListAdapterUpdaterDelegate
-
@protocol IGListAdapterUpdaterDelegate < NSObject >
+
@protocol IGListAdapterUpdaterDelegate < NSObject >
@@ -263,14 +278,14 @@ IGListAdapterUpdaterDelegate
Declaration
Objective-C
-
- ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
+ - ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
willPerformBatchUpdatesWithCollectionView :
( nonnull UICollectionView * ) collectionView ;
Swift
-
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willPerformBatchUpdatesWith collectionView : UICollectionView )
+
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willPerformBatchUpdatesWith collectionView : UICollectionView )
@@ -333,14 +348,14 @@ Parameters
Declaration
Swift
-
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , didPerformBatchUpdates updates : ListBatchUpdateData , collectionView : UICollectionView )
+
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , didPerformBatchUpdates updates : ListBatchUpdateData , collectionView : UICollectionView )
@@ -415,14 +430,14 @@ Parameters
Declaration
Objective-C
-
- ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
+ - ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
willInsertIndexPaths :( nonnull NSArray < NSIndexPath *> * ) indexPaths
collectionView :( nonnull UICollectionView * ) collectionView ;
Swift
-
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willInsert indexPaths : [ IndexPath ], collectionView : UICollectionView )
+
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willInsert indexPaths : [ IndexPath ], collectionView : UICollectionView )
@@ -497,14 +512,14 @@ Parameters
Declaration
Objective-C
-
- ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
+ - ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
willDeleteIndexPaths :( nonnull NSArray < NSIndexPath *> * ) indexPaths
collectionView :( nonnull UICollectionView * ) collectionView ;
Swift
-
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willDelete indexPaths : [ IndexPath ], collectionView : UICollectionView )
+
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willDelete indexPaths : [ IndexPath ], collectionView : UICollectionView )
@@ -579,7 +594,7 @@ Parameters
Declaration
Objective-C
-
- ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
+ - ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
willMoveFromIndexPath :( nonnull NSIndexPath * ) fromIndexPath
toIndexPath :( nonnull NSIndexPath * ) toIndexPath
collectionView :( nonnull UICollectionView * ) collectionView ;
@@ -587,7 +602,7 @@ Declaration
Swift
-
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willMoveFrom fromIndexPath : IndexPath , to toIndexPath : IndexPath , collectionView : UICollectionView )
+
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willMoveFrom fromIndexPath : IndexPath , to toIndexPath : IndexPath , collectionView : UICollectionView )
@@ -674,14 +689,14 @@ Parameters
Declaration
Objective-C
-
- ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
+ - ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
willReloadIndexPaths :( nonnull NSArray < NSIndexPath *> * ) indexPaths
collectionView :( nonnull UICollectionView * ) collectionView ;
Swift
-
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willReload indexPaths : [ IndexPath ], collectionView : UICollectionView )
+
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willReload indexPaths : [ IndexPath ], collectionView : UICollectionView )
@@ -756,14 +771,14 @@ Parameters
Declaration
Objective-C
-
- ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
+ - ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
willReloadSections :( nonnull NSIndexSet * ) sections
collectionView :( nonnull UICollectionView * ) collectionView ;
Swift
-
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willReloadSections sections : IndexSet , collectionView : UICollectionView )
+
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willReloadSections sections : IndexSet , collectionView : UICollectionView )
@@ -833,13 +848,13 @@ Parameters
Declaration
Objective-C
-
- ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
+ - ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
willReloadDataWithCollectionView :( nonnull UICollectionView * ) collectionView ;
Swift
-
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willReloadDataWith collectionView : UICollectionView )
+
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willReloadDataWith collectionView : UICollectionView )
@@ -897,13 +912,13 @@ Parameters
Declaration
Objective-C
-
- ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
+ - ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
didReloadDataWithCollectionView :( nonnull UICollectionView * ) collectionView ;
Swift
-
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , didReloadDataWith collectionView : UICollectionView )
+
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , didReloadDataWith collectionView : UICollectionView )
@@ -944,9 +959,9 @@ Parameters
@@ -961,7 +976,8 @@
Parameters
Declaration
Objective-C
-
- ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
+ - ( void ) listAdapterUpdater :( nonnull IGListAdapterUpdater * ) listAdapterUpdater
+ collectionView :( nonnull UICollectionView * ) collectionView
willCrashWithException :( nonnull NSException * ) exception
fromObjects :( nullable NSArray * ) fromObjects
toObjects :( nullable NSArray * ) toObjects
@@ -970,7 +986,7 @@ Declaration
Swift
-
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , willCrashWith exception : NSException , from fromObjects : [ Any ]?, to toObjects : [ Any ]?, updates : ListBatchUpdateData )
+
func listAdapterUpdater ( _ listAdapterUpdater : IGListAdapterUpdater , collectionView : UICollectionView , willCrashWith exception : NSException , from fromObjects : [ Any ]?, to toObjects : [ Any ]?, updates : ListBatchUpdateData )
@@ -990,6 +1006,18 @@ Parameters
+
+
+
+ collectionView
+
+
+
+
+
The collection view being updated.
+
+
+
@@ -1049,8 +1077,8 @@ Parameters
diff --git a/docs/Protocols/IGListBatchContext.html b/docs/Protocols/IGListBatchContext.html
index d59d8145d..fe17c1dde 100644
--- a/docs/Protocols/IGListBatchContext.html
+++ b/docs/Protocols/IGListBatchContext.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListBatchContext
-
@protocol IGListBatchContext < NSObject >
+
@protocol IGListBatchContext < NSObject >
@@ -264,14 +279,14 @@ IGListBatchContext
Declaration
Objective-C
-
- ( void ) reloadInSectionController :
+ - ( void ) reloadInSectionController :
( nonnull IGListSectionController * ) sectionController
atIndexes :( nonnull NSIndexSet * ) indexes ;
@@ -329,14 +344,14 @@ Parameters
Declaration
Objective-C
-
- ( void ) insertInSectionController :
+ - ( void ) insertInSectionController :
( nonnull IGListSectionController * ) sectionController
atIndexes :( nonnull NSIndexSet * ) indexes ;
@@ -394,14 +409,14 @@ Parameters
Declaration
Objective-C
-
- ( void ) deleteInSectionController :
+ - ( void ) deleteInSectionController :
( nonnull IGListSectionController * ) sectionController
atIndexes :( nonnull NSIndexSet * ) indexes ;
@@ -459,7 +474,7 @@ Parameters
Declaration
Objective-C
-
- ( void ) moveInSectionController :
+ - ( void ) moveInSectionController :
( nonnull IGListSectionController * ) sectionController
fromIndex :( NSInteger ) fromIndex
toIndex :( NSInteger ) toIndex ;
@@ -467,7 +482,7 @@ Declaration
@@ -537,13 +552,13 @@ Parameters
Declaration
Objective-C
-
- ( void ) reloadSectionController :
+ - ( void ) reloadSectionController :
( nonnull IGListSectionController * ) sectionController ;
@@ -574,8 +589,8 @@ Parameters
diff --git a/docs/Protocols/IGListBindable.html b/docs/Protocols/IGListBindable.html
index 5e4e61cb7..c13d762d3 100644
--- a/docs/Protocols/IGListBindable.html
+++ b/docs/Protocols/IGListBindable.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListBindable
-
@protocol IGListBindable < NSObject >
+
@protocol IGListBindable < NSObject >
@@ -269,12 +284,12 @@ IGListBindable
Declaration
Objective-C
-
- ( void ) bindViewModel :( nonnull id ) viewModel ;
+
- ( void ) bindViewModel :( nonnull id ) viewModel ;
Swift
-
func bindViewModel ( _ viewModel : Any )
+
func bindViewModel ( _ viewModel : Any )
@@ -305,8 +320,8 @@ Parameters
diff --git a/docs/Protocols/IGListBindingSectionControllerDataSource.html b/docs/Protocols/IGListBindingSectionControllerDataSource.html
index 4b7840973..c670d83d9 100644
--- a/docs/Protocols/IGListBindingSectionControllerDataSource.html
+++ b/docs/Protocols/IGListBindingSectionControllerDataSource.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListBindingSectionControllerDataSource
-
@protocol IGListBindingSectionControllerDataSource < NSObject >
+
@protocol IGListBindingSectionControllerDataSource < NSObject >
@@ -263,7 +278,7 @@ IGListBindingSectionControllerDataSource
Declaration
@@ -415,7 +430,7 @@ Return Value
Declaration
Objective-C
-
- ( CGSize ) sectionController :
+ - ( CGSize ) sectionController :
( nonnull IGListBindingSectionController * ) sectionController
sizeForViewModel :( nonnull id ) viewModel
atIndex :( NSInteger ) index ;
@@ -423,7 +438,7 @@ Declaration
@@ -482,8 +497,8 @@ Return Value
diff --git a/docs/Protocols/IGListBindingSectionControllerSelectionDelegate.html b/docs/Protocols/IGListBindingSectionControllerSelectionDelegate.html
index 55034616f..a3fab091c 100644
--- a/docs/Protocols/IGListBindingSectionControllerSelectionDelegate.html
+++ b/docs/Protocols/IGListBindingSectionControllerSelectionDelegate.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListBindingSectionControllerSelectionDelegate
-
@protocol IGListBindingSectionControllerSelectionDelegate < NSObject >
+
@protocol IGListBindingSectionControllerSelectionDelegate < NSObject >
@@ -263,7 +278,7 @@ IGListBindingSectionControllerSelectionDelegate
Declaration
Objective-C
-
- ( void ) sectionController :
+ - ( void ) sectionController :
( nonnull IGListBindingSectionController * ) sectionController
didSelectItemAtIndex :( NSInteger ) index
viewModel :( nonnull id ) viewModel ;
@@ -271,7 +286,7 @@ Declaration
@@ -334,17 +349,229 @@ Parameters
-
Undocumented
+
Tells the delegate that a cell at a given index was deselected.
+
+
Note
+
Method is @optional
until the 4.0.0 release where it will become required.
+
+
+
+
+
+
Declaration
+
+
Objective-C
+
- ( void ) sectionController :
+ ( nonnull IGListBindingSectionController * ) sectionController
+ didDeselectItemAtIndex :( NSInteger ) index
+ viewModel :( nonnull id ) viewModel ;
+
+
+
+
+
+
Parameters
+
+
+
+
+
+ sectionController
+
+
+
+
+
The section controller the deselection occurred in.
+
+
+
+
+
+
+ index
+
+
+
+
+
The index of the deselected cell.
+
+
+
+
+
+
+ viewModel
+
+
+
+
+
The view model that was bound to the cell.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tells the delegate that a cell at a given index was highlighted.
+
+
+
+
Declaration
+
+
Objective-C
+
- ( void ) sectionController :
+ ( nonnull IGListBindingSectionController * ) sectionController
+ didHighlightItemAtIndex :( NSInteger ) index
+ viewModel :( nonnull id ) viewModel ;
+
+
+
+
+
+
Parameters
+
+
+
+
+
+ sectionController
+
+
+
+
+
The section controller the highlight occurred in.
+
+
+
+
+
+
+ index
+
+
+
+
+
The index of the highlighted cell.
+
+
+
+
+
+
+ viewModel
+
+
+
+
+
The view model that was bound to the cell.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tells the delegate that a cell at a given index was unhighlighted.
Declaration
Objective-C
-
@protocol IGListBindingSectionControllerSelectionDelegate < NSObject >
+
- ( void ) sectionController :
+ ( nonnull IGListBindingSectionController * ) sectionController
+ didUnhighlightItemAtIndex :( NSInteger ) index
+ viewModel :( nonnull id ) viewModel ;
+
+
+
+
+
Parameters
+
+
+
+
+
+ sectionController
+
+
+
+
+
The section controller the unhighlight occurred in.
+
+
+
+
+
+
+ index
+
+
+
+
+
The index of the unhighlighted cell.
+
+
+
+
+
+
+ viewModel
+
+
+
+
+
The view model that was bound to the cell.
+
+
+
+
+
+
@@ -353,8 +580,8 @@ Declaration
diff --git a/docs/Protocols/IGListCollectionContext.html b/docs/Protocols/IGListCollectionContext.html
index 91d98fe38..90b2a7184 100644
--- a/docs/Protocols/IGListCollectionContext.html
+++ b/docs/Protocols/IGListCollectionContext.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListCollectionContext
-
@protocol IGListCollectionContext < NSObject >
+
@protocol IGListCollectionContext < NSObject >
@@ -264,12 +279,12 @@ IGListCollectionContext
Declaration
Objective-C
-
@property ( readonly , nonatomic ) CGSize containerSize ;
+
@property ( readonly , nonatomic ) CGSize containerSize ;
Swift
-
var containerSize : CGSize { get }
+
var containerSize : CGSize { get }
@@ -296,12 +311,44 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , nonatomic ) UIEdgeInsets containerInset ;
+
@property ( readonly , nonatomic ) UIEdgeInsets containerInset ;
+
+
+
+
Swift
+
var containerInset : UIEdgeInsets { get }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The adjusted content insets of the collection view. Equivalent to containerInset under iOS 11.
+
+
+
+
Declaration
+
+
Objective-C
+
@property ( readonly , nonatomic ) UIEdgeInsets adjustedContainerInset ;
Swift
-
var containerInset : UIEdgeInsets { get }
+
var adjustedContainerInset : UIEdgeInsets { get }
@@ -328,12 +375,12 @@ Declaration
Declaration
Objective-C
-
@property ( readonly , nonatomic ) CGSize insetContainerSize ;
+
@property ( readonly , nonatomic ) CGSize insetContainerSize ;
Swift
-
var insetContainerSize : CGSize { get }
+
var insetContainerSize : CGSize { get }
@@ -360,13 +407,13 @@ Declaration
Declaration
Objective-C
-
- ( CGSize ) containerSizeForSectionController :
+ - ( CGSize ) containerSizeForSectionController :
( nonnull IGListSectionController * ) sectionController ;
@@ -416,13 +463,13 @@ Return Value
Declaration
Objective-C
-
- ( NSInteger ) indexForCell :( nonnull UICollectionViewCell * ) cell
+ - ( NSInteger ) indexForCell :( nonnull UICollectionViewCell * ) cell
sectionController :( nonnull IGListSectionController * ) sectionController ;
@@ -489,14 +536,14 @@ Return Value
Declaration
Objective-C
-
- ( nullable __kindof UICollectionViewCell * )
+ - ( nullable __kindof UICollectionViewCell * )
cellForItemAtIndex :( NSInteger ) index
sectionController :( nonnull IGListSectionController * ) sectionController ;
@@ -558,13 +605,13 @@ Return Value
Declaration
Objective-C
-
- ( nonnull NSArray < UICollectionViewCell *> * ) visibleCellsForSectionController :
+ - ( nonnull NSArray < UICollectionViewCell *> * ) visibleCellsForSectionController :
( nonnull IGListSectionController * ) sectionController ;
@@ -614,13 +661,13 @@ Return Value
Declaration
Objective-C
-
- ( nonnull NSArray < NSIndexPath *> * ) visibleIndexPathsForSectionController :
+ - ( nonnull NSArray < NSIndexPath *> * ) visibleIndexPathsForSectionController :
( nonnull IGListSectionController * ) sectionController ;
@@ -670,14 +717,14 @@ Return Value
Declaration
Objective-C
-
- ( void ) deselectItemAtIndex :( NSInteger ) index
+ - ( void ) deselectItemAtIndex :( NSInteger ) index
sectionController :( nonnull IGListSectionController * ) sectionController
animated :( BOOL ) animated ;
@@ -747,7 +794,7 @@ Parameters
Declaration
Objective-C
-
- ( void ) selectItemAtIndex :( NSInteger ) index
+ - ( void ) selectItemAtIndex :( NSInteger ) index
sectionController :( nonnull IGListSectionController * ) sectionController
animated :( BOOL ) animated
scrollPosition :( UICollectionViewScrollPosition ) scrollPosition ;
@@ -755,7 +802,7 @@ Declaration
Swift
-
func selectItem ( at index : Int , sectionController : IGListSectionController , animated : Bool , scrollPosition : UICollectionViewScrollPosition )
+
func selectItem ( at index : Int , sectionController : IGListSectionController , animated : Bool , scrollPosition : UICollectionViewScrollPosition )
@@ -842,7 +889,7 @@ Parameters
Declaration
Objective-C
-
- ( nonnull __kindof UICollectionViewCell * )
+ - ( nonnull __kindof UICollectionViewCell * )
dequeueReusableCellOfClass :( nonnull Class ) cellClass
forSectionController :( nonnull IGListSectionController * ) sectionController
atIndex :( NSInteger ) index ;
@@ -850,7 +897,7 @@ Declaration
Swift
-
func dequeueReusableCell ( of cellClass : AnyClass , for sectionController : IGListSectionController , at index : Int ) -> UICollectionViewCell
+
func dequeueReusableCell ( of cellClass : AnyClass , for sectionController : IGListSectionController , at index : Int ) -> UICollectionViewCell
@@ -929,7 +976,7 @@ Return Value
Declaration
Objective-C
-
- ( nonnull __kindof UICollectionViewCell * )
+ - ( nonnull __kindof UICollectionViewCell * )
dequeueReusableCellWithNibName :( nonnull NSString * ) nibName
bundle :( nullable NSBundle * ) bundle
forSectionController :
@@ -939,7 +986,7 @@ Declaration
Swift
-
func dequeueReusableCell ( withNibName nibName : String , bundle : Bundle ?, for sectionController : IGListSectionController , at index : Int ) -> UICollectionViewCell
+
func dequeueReusableCell ( withNibName nibName : String , bundle : Bundle ?, for sectionController : IGListSectionController , at index : Int ) -> UICollectionViewCell
@@ -1025,7 +1072,7 @@ Return Value
Declaration
Objective-C
-
- ( nonnull __kindof UICollectionViewCell * )
+ - ( nonnull __kindof UICollectionViewCell * )
dequeueReusableCellFromStoryboardWithIdentifier :( nonnull NSString * ) identifier
forSectionController :
( nonnull IGListSectionController * )
@@ -1035,7 +1082,7 @@ Declaration
Swift
-
func dequeueReusableCellFromStoryboard ( withIdentifier identifier : String , for sectionController : IGListSectionController , at index : Int ) -> UICollectionViewCell
+
func dequeueReusableCellFromStoryboard ( withIdentifier identifier : String , for sectionController : IGListSectionController , at index : Int ) -> UICollectionViewCell
@@ -1114,7 +1161,7 @@ Return Value
Declaration
Objective-C
-
- ( nonnull __kindof UICollectionReusableView * )
+ - ( nonnull __kindof UICollectionReusableView * )
dequeueReusableSupplementaryViewOfKind :( nonnull NSString * ) elementKind
forSectionController :
( nonnull IGListSectionController * ) sectionController
@@ -1124,7 +1171,7 @@ Declaration
Swift
-
func dequeueReusableSupplementaryView ( ofKind elementKind : String , for sectionController : IGListSectionController , class viewClass : AnyClass , at index : Int ) -> UICollectionReusableView
+
func dequeueReusableSupplementaryView ( ofKind elementKind : String , for sectionController : IGListSectionController , class viewClass : AnyClass , at index : Int ) -> UICollectionReusableView
@@ -1210,7 +1257,7 @@ Return Value
Declaration
Objective-C
-
- ( nonnull __kindof UICollectionReusableView * )
+ - ( nonnull __kindof UICollectionReusableView * )
dequeueReusableSupplementaryViewFromStoryboardOfKind :
( nonnull NSString * ) elementKind
withIdentifier :
@@ -1223,7 +1270,7 @@ Declaration
Swift
-
func dequeueReusableSupplementaryView ( fromStoryboardOfKind elementKind : String , withIdentifier identifier : String , for sectionController : IGListSectionController , at index : Int ) -> UICollectionReusableView
+
func dequeueReusableSupplementaryView ( fromStoryboardOfKind elementKind : String , withIdentifier identifier : String , for sectionController : IGListSectionController , at index : Int ) -> UICollectionReusableView
@@ -1314,7 +1361,7 @@ Return Value
Declaration
Objective-C
-
- ( nonnull __kindof UICollectionReusableView * )
+ - ( nonnull __kindof UICollectionReusableView * )
dequeueReusableSupplementaryViewOfKind :( nonnull NSString * ) elementKind
forSectionController :
( nonnull IGListSectionController * ) sectionController
@@ -1325,7 +1372,7 @@ Declaration
Swift
-
func dequeueReusableSupplementaryView ( ofKind elementKind : String , for sectionController : IGListSectionController , nibName : String , bundle : Bundle ?, at index : Int ) -> UICollectionReusableView
+
func dequeueReusableSupplementaryView ( ofKind elementKind : String , for sectionController : IGListSectionController , nibName : String , bundle : Bundle ?, at index : Int ) -> UICollectionReusableView
@@ -1430,7 +1477,7 @@ Return Value
Declaration
Objective-C
-
- ( void ) invalidateLayoutForSectionController :
+ - ( void ) invalidateLayoutForSectionController :
( nonnull IGListSectionController * ) sectionController
completion :
( nullable void ( ^ )( BOOL )) completion ;
@@ -1438,7 +1485,7 @@ Declaration
@@ -1499,17 +1546,17 @@ Parameters
For example, inside your section controllers, you may want to delete and insert into the data source that backs your
section controller. For example:
-[self.collectionContext performBatchItemUpdates:^ (id<IGListBatchContext> batchContext>){
- // perform data source changes inside the update block
- [self.items addObject:newItem];
- [self.items removeObjectAtIndex:0];
+[ self . collectionContext performBatchItemUpdates : ^ ( id < IGListBatchContext > batchContext > ){
+ // perform data source changes inside the update block
+ [ self . items addObject : newItem ];
+ [ self . items removeObjectAtIndex : 0 ];
- NSIndexSet *inserts = [NSIndexSet indexSetWithIndex:[self.items count] - 1];
- [batchContext insertInSectionController:self atIndexes:inserts];
+ NSIndexSet * inserts = [ NSIndexSet indexSetWithIndex :[ self . items count ] - 1 ];
+ [ batchContext insertInSectionController : self atIndexes : inserts ];
- NSIndexSet *deletes = [NSIndexSet indexSetWithIndex:0];
- [batchContext deleteInSectionController:self atIndexes:deletes];
-} completion:nil];
+ NSIndexSet * deletes = [ NSIndexSet indexSetWithIndex : 0 ];
+ [ batchContext deleteInSectionController : self atIndexes : deletes ];
+} completion : nil ];
Warning
@@ -1523,7 +1570,7 @@
Parameters
Declaration
Objective-C
-
- ( void )
+ - ( void )
performBatchAnimated :( BOOL ) animated
updates :( nonnull void ( ^ )( id < IGListBatchContext > _Nonnull )) updates
completion :( nullable void ( ^ )( BOOL )) completion ;
@@ -1531,7 +1578,7 @@ Declaration
Swift
-
func performBatch ( animated : Bool , updates : @escaping ( ListBatchContext ) -> Void , completion : (( Bool ) -> Void )? = nil )
+
func performBatch ( animated : Bool , updates : @escaping ( ListBatchContext ) -> Void , completion : (( Bool ) -> Void )? = nil )
@@ -1601,7 +1648,7 @@ Parameters
Declaration
Objective-C
-
- ( void ) scrollToSectionController :
+ - ( void ) scrollToSectionController :
( nonnull IGListSectionController * ) sectionController
atIndex :( NSInteger ) index
scrollPosition :( UICollectionViewScrollPosition ) scrollPosition
@@ -1610,7 +1657,7 @@ Declaration
Swift
-
func scroll ( to sectionController : IGListSectionController , at index : Int , scrollPosition : UICollectionViewScrollPosition , animated : Bool )
+
func scroll ( to sectionController : IGListSectionController , at index : Int , scrollPosition : UICollectionViewScrollPosition , animated : Bool )
@@ -1677,8 +1724,8 @@ Parameters
diff --git a/docs/Protocols/IGListCollectionViewDelegateLayout.html b/docs/Protocols/IGListCollectionViewDelegateLayout.html
new file mode 100644
index 000000000..2f52adeb4
--- /dev/null
+++ b/docs/Protocols/IGListCollectionViewDelegateLayout.html
@@ -0,0 +1,456 @@
+
+
+
+ IGListCollectionViewDelegateLayout Protocol Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IGListKit Reference
+
+ IGListCollectionViewDelegateLayout Protocol Reference
+
+
+
+
+
+
+
+ IGListCollectionViewDelegateLayout
+
+
+
@protocol
+ IGListCollectionViewDelegateLayout < UICollectionViewDelegateFlowLayout >
+
+
+
+ Conform to IGListCollectionViewDelegateLayout
to provide customized layout information for a collection view.
+
+
+
+
+
+
+
+
+
+
+
+
+
Asks the delegate to customize and return the starting layout information for an item being inserted into the collection view.
+
+
+
+
Declaration
+
+
Objective-C
+
- ( UICollectionViewLayoutAttributes * )
+ collectionView :( UICollectionView * ) collectionView
+ layout :( UICollectionViewLayout * ) collectionViewLayout
+customizedInitialLayoutAttributes :( UICollectionViewLayoutAttributes * ) attributes
+ atIndexPath :( NSIndexPath * ) indexPath ;
+
+
+
+
Swift
+
func collectionView ( _ collectionView : UICollectionView ! , layout collectionViewLayout : UICollectionViewLayout ! , customizedInitialLayoutAttributes attributes : UICollectionViewLayoutAttributes ! , at indexPath : IndexPath ! ) -> UICollectionViewLayoutAttributes !
+
+
+
+
+
Parameters
+
+
+
+
+
+ collectionView
+
+
+
+
+
The collection view to perform the transition on.
+
+
+
+
+
+
+ collectionViewLayout
+
+
+
+
+
The layout to use with the collection view.
+
+
+
+
+
+
+ attributes
+
+
+
+
+
The starting layout information for an item being inserted into the collection view.
+
+
+
+
+
+
+ indexPath
+
+
+
+
+
The index path of the item being inserted.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Asks the delegate to customize and return the final layout information for an item that is about to be removed from the collection view.
+
+
+
+
Declaration
+
+
Objective-C
+
- ( UICollectionViewLayoutAttributes * )
+ collectionView :( UICollectionView * ) collectionView
+ layout :( UICollectionViewLayout * ) collectionViewLayout
+customizedFinalLayoutAttributes :( UICollectionViewLayoutAttributes * ) attributes
+ atIndexPath :( NSIndexPath * ) indexPath ;
+
+
+
+
Swift
+
func collectionView ( _ collectionView : UICollectionView ! , layout collectionViewLayout : UICollectionViewLayout ! , customizedFinalLayoutAttributes attributes : UICollectionViewLayoutAttributes ! , at indexPath : IndexPath ! ) -> UICollectionViewLayoutAttributes !
+
+
+
+
+
Parameters
+
+
+
+
+
+ collectionView
+
+
+
+
+
The collection view to perform the transition on.
+
+
+
+
+
+
+ collectionViewLayout
+
+
+
+
+
The layout to use with the collection view.
+
+
+
+
+
+
+ attributes
+
+
+
+
+
The final layout information for an item that is about to be removed from the collection view.
+
+
+
+
+
+
+ indexPath
+
+
+
+
+
The index path of the item being deleted.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Protocols/IGListDiffable.html b/docs/Protocols/IGListDiffable.html
index 633333e19..b5066e51b 100644
--- a/docs/Protocols/IGListDiffable.html
+++ b/docs/Protocols/IGListDiffable.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListDiffable
-
@protocol IGListDiffable
+
@protocol IGListDiffable
@@ -275,12 +290,12 @@ IGListDiffable
Declaration
Objective-C
-
- ( nonnull id < NSObject > ) diffIdentifier ;
+
- ( nonnull id < NSObject > ) diffIdentifier ;
Swift
-
func diffIdentifier () -> NSObjectProtocol
+
func diffIdentifier () -> NSObjectProtocol
@@ -311,12 +326,12 @@ Return Value
Declaration
Objective-C
-
- ( BOOL ) isEqualToDiffableObject :( nullable id < IGListDiffable > ) object ;
+
- ( BOOL ) isEqualToDiffableObject :( nullable id < IGListDiffable > ) object ;
Swift
-
func isEqual ( toDiffableObject object : ListDiffable ?) -> Bool
+
func isEqual ( toDiffableObject object : ListDiffable ?) -> Bool
@@ -351,8 +366,8 @@ Return Value
diff --git a/docs/Protocols/IGListDisplayDelegate.html b/docs/Protocols/IGListDisplayDelegate.html
index 61bd55307..bd19261b2 100644
--- a/docs/Protocols/IGListDisplayDelegate.html
+++ b/docs/Protocols/IGListDisplayDelegate.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListDisplayDelegate
-
@protocol IGListDisplayDelegate < NSObject >
+
@protocol IGListDisplayDelegate < NSObject >
@@ -263,14 +278,14 @@ IGListDisplayDelegate
Declaration
@@ -328,14 +343,14 @@ Parameters
Declaration
@@ -393,7 +408,7 @@ Parameters
Declaration
Objective-C
-
- ( void ) listAdapter :( nonnull IGListAdapter * ) listAdapter
+ - ( void ) listAdapter :( nonnull IGListAdapter * ) listAdapter
willDisplaySectionController :
( nonnull IGListSectionController * ) sectionController
cell :( nonnull UICollectionViewCell * ) cell
@@ -402,7 +417,7 @@ Declaration
@@ -484,7 +499,7 @@ Parameters
Declaration
Objective-C
-
- ( void ) listAdapter :( nonnull IGListAdapter * ) listAdapter
+ - ( void ) listAdapter :( nonnull IGListAdapter * ) listAdapter
didEndDisplayingSectionController :
( nonnull IGListSectionController * ) sectionController
cell :( nonnull UICollectionViewCell * ) cell
@@ -493,7 +508,7 @@ Declaration
@@ -560,8 +575,8 @@ Parameters
diff --git a/docs/Protocols/IGListScrollDelegate.html b/docs/Protocols/IGListScrollDelegate.html
index 174bd1375..fffd3a6c5 100644
--- a/docs/Protocols/IGListScrollDelegate.html
+++ b/docs/Protocols/IGListScrollDelegate.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListScrollDelegate
-
@protocol IGListScrollDelegate < NSObject >
+
@protocol IGListScrollDelegate < NSObject >
@@ -263,14 +278,14 @@ IGListScrollDelegate
Declaration
@@ -328,14 +343,14 @@ Parameters
Declaration
@@ -393,7 +408,7 @@ Parameters
Declaration
Objective-C
-
- ( void ) listAdapter :( nonnull IGListAdapter * ) listAdapter
+ - ( void ) listAdapter :( nonnull IGListAdapter * ) listAdapter
didEndDraggingSectionController :
( nonnull IGListSectionController * ) sectionController
willDecelerate :( BOOL ) decelerate ;
@@ -401,7 +416,7 @@ Declaration
@@ -452,17 +467,60 @@ Parameters
-
Undocumented
+
Tells the delegate that the section controller did end decelerating on screen.
+
+
Note
+
This method is @optional
until the next breaking-change release.
+
+
Declaration
Objective-C
-
@protocol IGListScrollDelegate < NSObject >
+
- ( void ) listAdapter :( nonnull IGListAdapter * ) listAdapter
+ didEndDeceleratingSectionController :
+ ( nonnull IGListSectionController * ) sectionController ;
+
+
+
+
+
Parameters
+
+
+
+
+
+ listAdapter
+
+
+
+
+
The list adapter whose collection view ended decelerating.
+
+
+
+
+
+
+ sectionController
+
+
+
+
+
The visible section controller that ended decelerating.
+
+
+
+
+
+
@@ -471,8 +529,8 @@ Declaration
diff --git a/docs/Protocols/IGListSingleSectionControllerDelegate.html b/docs/Protocols/IGListSingleSectionControllerDelegate.html
index 925b7c008..767e94dba 100644
--- a/docs/Protocols/IGListSingleSectionControllerDelegate.html
+++ b/docs/Protocols/IGListSingleSectionControllerDelegate.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListSingleSectionControllerDelegate
-
@protocol IGListSingleSectionControllerDelegate < NSObject >
+
@protocol IGListSingleSectionControllerDelegate < NSObject >
@@ -263,14 +278,14 @@ IGListSingleSectionControllerDelegate
Declaration
Objective-C
-
- ( void ) didSelectSectionController :
+ - ( void ) didSelectSectionController :
( nonnull IGListSingleSectionController * ) sectionController
withObject :( nonnull id ) object ;
Swift
-
func didSelect ( _ sectionController : ListSingleSectionController , with object : Any )
+
func didSelect ( _ sectionController : ListSingleSectionController , with object : Any )
@@ -308,13 +323,83 @@ Parameters
+
+
+
+
+
+
+
+
Tells the delegate that the section controller was deselected.
+
+
Note
+
Method is @optional
until the 4.0.0 release where it will become required.
+
+
+
+
+
+
Declaration
+
+
Objective-C
+
- ( void ) didDeselectSectionController :
+ ( nonnull IGListSingleSectionController * ) sectionController
+ withObject :( nonnull id ) object ;
+
+
+
+
Swift
+
optional func didDeselect ( _ sectionController : ListSingleSectionController , with object : Any )
+
+
+
+
+
Parameters
+
+
+
+
+
+ sectionController
+
+
+
+
+
The section controller that was deselected.
+
+
+
+
+
+
+ object
+
+
+
+
+
The model for the given section.
+
+
+
+
+
+
+
+
+
diff --git a/docs/Protocols/IGListSupplementaryViewSource.html b/docs/Protocols/IGListSupplementaryViewSource.html
index bb24a2a00..38b70f3bc 100644
--- a/docs/Protocols/IGListSupplementaryViewSource.html
+++ b/docs/Protocols/IGListSupplementaryViewSource.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListSupplementaryViewSource
-
@protocol IGListSupplementaryViewSource < NSObject >
+
@protocol IGListSupplementaryViewSource < NSObject >
@@ -265,12 +280,12 @@ IGListSupplementaryViewSource
Declaration
Objective-C
-
- ( nonnull NSArray < NSString *> * ) supportedElementKinds ;
+
- ( nonnull NSArray < NSString *> * ) supportedElementKinds ;
Swift
-
func supportedElementKinds () -> [ String ]
+
func supportedElementKinds () -> [ String ]
@@ -311,14 +326,14 @@ Return Value
Declaration
Objective-C
-
- ( nonnull __kindof UICollectionReusableView * )
+ - ( nonnull __kindof UICollectionReusableView * )
viewForSupplementaryElementOfKind :( nonnull NSString * ) elementKind
atIndex :( NSInteger ) index ;
Swift
-
func viewForSupplementaryElement ( ofKind elementKind : String , at index : Int ) -> UICollectionReusableView
+
func viewForSupplementaryElement ( ofKind elementKind : String , at index : Int ) -> UICollectionReusableView
@@ -376,13 +391,13 @@ Parameters
Declaration
Objective-C
-
- ( CGSize ) sizeForSupplementaryViewOfKind :( nonnull NSString * ) elementKind
+ - ( CGSize ) sizeForSupplementaryViewOfKind :( nonnull NSString * ) elementKind
atIndex :( NSInteger ) index ;
Swift
-
func sizeForSupplementaryView ( ofKind elementKind : String , at index : Int ) -> CGSize
+
func sizeForSupplementaryView ( ofKind elementKind : String , at index : Int ) -> CGSize
@@ -429,8 +444,8 @@ Return Value
diff --git a/docs/Protocols/IGListTransitionDelegate.html b/docs/Protocols/IGListTransitionDelegate.html
new file mode 100644
index 000000000..0f8f0cb07
--- /dev/null
+++ b/docs/Protocols/IGListTransitionDelegate.html
@@ -0,0 +1,455 @@
+
+
+
+ IGListTransitionDelegate Protocol Reference
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IGListKit Reference
+
+ IGListTransitionDelegate Protocol Reference
+
+
+
+
+
+
+
+ IGListTransitionDelegate
+
+
+
@protocol IGListTransitionDelegate < NSObject >
+
+
+
+ Conform to IGListTransitionDelegate
to provide customized layout information for a collection view.
+
+
+
+
+
+
+
+
+
+
+
+
+
Asks the delegate to customize and return the starting layout information for an item being inserted into the collection view.
+
+
+
+
Declaration
+
+
Objective-C
+
- ( UICollectionViewLayoutAttributes * )
+ listAdapter :( IGListAdapter * ) listAdapter
+customizedInitialLayoutAttributes :( UICollectionViewLayoutAttributes * ) attributes
+ sectionController :( IGListSectionController * ) sectionController
+ atIndex :( NSInteger ) index ;
+
+
+
+
Swift
+
func listAdapter ( _ listAdapter : Any ! , customizedInitialLayoutAttributes attributes : Any ! , sectionController : Any ! , atIndex index : Any ! ) -> Any !
+
+
+
+
+
Parameters
+
+
+
+
+
+ listAdapter
+
+
+
+
+
The adapter controlling the list.
+
+
+
+
+
+
+ attributes
+
+
+
+
+
The starting layout information for an item being inserted into the collection view.
+
+
+
+
+
+
+ sectionController
+
+
+
+
+
The section controller to perform the transition on.
+
+
+
+
+
+
+ index
+
+
+
+
+
The index of the item being inserted.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Asks the delegate to customize and return the final layout information for an item that is about to be removed from the collection view.
+
+
+
+
Declaration
+
+
Objective-C
+
- ( UICollectionViewLayoutAttributes * )
+ listAdapter :( IGListAdapter * ) listAdapter
+customizedFinalLayoutAttributes :( UICollectionViewLayoutAttributes * ) attributes
+ sectionController :( IGListSectionController * ) sectionController
+ atIndex :( NSInteger ) index ;
+
+
+
+
Swift
+
func listAdapter ( _ listAdapter : Any ! , customizedFinalLayoutAttributes attributes : Any ! , sectionController : Any ! , atIndex index : Any ! ) -> Any !
+
+
+
+
+
Parameters
+
+
+
+
+
+ listAdapter
+
+
+
+
+
The adapter controlling the list.
+
+
+
+
+
+
+ attributes
+
+
+
+
+
The final layout information for an item that is about to be removed from the collection view.
+
+
+
+
+
+
+ sectionController
+
+
+
+
+
The section controller to perform the transition on.
+
+
+
+
+
+
+ index
+
+
+
+
+
The index of the item being deleted.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/Protocols/IGListUpdatingDelegate.html b/docs/Protocols/IGListUpdatingDelegate.html
index d9265d50d..d6e347ef8 100644
--- a/docs/Protocols/IGListUpdatingDelegate.html
+++ b/docs/Protocols/IGListUpdatingDelegate.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListUpdatingDelegate
-
@protocol IGListUpdatingDelegate < NSObject >
+
@protocol IGListUpdatingDelegate < NSObject >
@@ -274,12 +289,12 @@ IGListUpdatingDelegate
Declaration
Objective-C
-
- ( nonnull NSPointerFunctions * ) objectLookupPointerFunctions ;
+
- ( nonnull NSPointerFunctions * ) objectLookupPointerFunctions ;
Swift
-
func objectLookupPointerFunctions () -> NSPointerFunctions
+
func objectLookupPointerFunctions () -> NSPointerFunctions
@@ -320,7 +335,7 @@ Return Value
Declaration
Objective-C
-
- ( void )
+ - ( void )
performUpdateWithCollectionView :( nonnull UICollectionView * ) collectionView
fromObjects :
( nullable NSArray < id < IGListDiffable >> * ) fromObjects
@@ -357,7 +372,7 @@ Parameters
-
The previous objects in the collection view. Objects must conform to IGListDiffable
.
+
The previous objects in the collection view. Objects must conform to IGListDiffable
.
@@ -369,7 +384,7 @@ Parameters
-
The new objects in collection view. Objects must conform to IGListDiffable
.
+
The new objects in collection view. Objects must conform to IGListDiffable
.
@@ -435,14 +450,14 @@ Parameters
Declaration
Objective-C
-
- ( void ) insertItemsIntoCollectionView :( nonnull UICollectionView * ) collectionView
+ - ( void ) insertItemsIntoCollectionView :( nonnull UICollectionView * ) collectionView
indexPaths :
( nonnull NSArray < NSIndexPath *> * ) indexPaths ;
Swift
-
func insertItems ( into collectionView : UICollectionView , indexPaths : [ IndexPath ])
+
func insertItems ( into collectionView : UICollectionView , indexPaths : [ IndexPath ])
@@ -500,14 +515,14 @@ Parameters
Declaration
Objective-C
-
- ( void ) deleteItemsFromCollectionView :( nonnull UICollectionView * ) collectionView
+ - ( void ) deleteItemsFromCollectionView :( nonnull UICollectionView * ) collectionView
indexPaths :
( nonnull NSArray < NSIndexPath *> * ) indexPaths ;
Swift
-
func deleteItems ( from collectionView : UICollectionView , indexPaths : [ IndexPath ])
+
func deleteItems ( from collectionView : UICollectionView , indexPaths : [ IndexPath ])
@@ -565,14 +580,14 @@ Parameters
Declaration
Objective-C
-
- ( void ) moveItemInCollectionView :( nonnull UICollectionView * ) collectionView
+ - ( void ) moveItemInCollectionView :( nonnull UICollectionView * ) collectionView
fromIndexPath :( nonnull NSIndexPath * ) fromIndexPath
toIndexPath :( nonnull NSIndexPath * ) toIndexPath ;
Swift
-
func moveItem ( in collectionView : UICollectionView , from fromIndexPath : IndexPath , to toIndexPath : IndexPath )
+
func moveItem ( in collectionView : UICollectionView , from fromIndexPath : IndexPath , to toIndexPath : IndexPath )
@@ -649,14 +664,14 @@ Parameters
Declaration
Objective-C
-
- ( void ) reloadItemInCollectionView :( nonnull UICollectionView * ) collectionView
+ - ( void ) reloadItemInCollectionView :( nonnull UICollectionView * ) collectionView
fromIndexPath :( nonnull NSIndexPath * ) fromIndexPath
toIndexPath :( nonnull NSIndexPath * ) toIndexPath ;
Swift
-
func reloadItem ( in collectionView : UICollectionView , from fromIndexPath : IndexPath , to toIndexPath : IndexPath )
+
func reloadItem ( in collectionView : UICollectionView , from fromIndexPath : IndexPath , to toIndexPath : IndexPath )
@@ -726,7 +741,7 @@ Parameters
Declaration
Objective-C
-
- ( void )
+ - ( void )
reloadDataWithCollectionView :( nonnull UICollectionView * ) collectionView
reloadUpdateBlock :( nonnull IGListReloadUpdateBlock ) reloadUpdateBlock
completion :( nullable IGListUpdatingCompletion ) completion ;
@@ -734,7 +749,7 @@ Declaration
Swift
-
func reloadData ( with collectionView : UICollectionView , reloadUpdate reloadUpdateBlock : @escaping ListReloadUpdateBlock , completion : ListUpdatingCompletion ? = nil )
+
func reloadData ( with collectionView : UICollectionView , reloadUpdate reloadUpdateBlock : @escaping ListReloadUpdateBlock , completion : ListUpdatingCompletion ? = nil )
@@ -804,13 +819,13 @@ Parameters
Declaration
Objective-C
-
- ( void ) reloadCollectionView :( nonnull UICollectionView * ) collectionView
+ - ( void ) reloadCollectionView :( nonnull UICollectionView * ) collectionView
sections :( nonnull NSIndexSet * ) sections ;
Swift
-
func reload ( _ collectionView : UICollectionView , sections : IndexSet )
+
func reload ( _ collectionView : UICollectionView , sections : IndexSet )
@@ -868,7 +883,7 @@ Parameters
Declaration
Objective-C
-
- ( void )
+ - ( void )
performUpdateWithCollectionView :( nonnull UICollectionView * ) collectionView
animated :( BOOL ) animated
itemUpdates :( nonnull IGListItemUpdateBlock ) itemUpdates
@@ -877,7 +892,7 @@ Declaration
Swift
-
func performUpdate ( with collectionView : UICollectionView , animated : Bool , itemUpdates : @escaping ListItemUpdateBlock , completion : ListUpdatingCompletion ? = nil )
+
func performUpdate ( with collectionView : UICollectionView , animated : Bool , itemUpdates : @escaping ListItemUpdateBlock , completion : ListUpdatingCompletion ? = nil )
@@ -944,8 +959,8 @@ Parameters
diff --git a/docs/Protocols/IGListWorkingRangeDelegate.html b/docs/Protocols/IGListWorkingRangeDelegate.html
index f110d338a..045f8e71a 100644
--- a/docs/Protocols/IGListWorkingRangeDelegate.html
+++ b/docs/Protocols/IGListWorkingRangeDelegate.html
@@ -75,6 +75,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -119,8 +122,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -138,6 +144,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -156,6 +165,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -171,6 +183,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -233,7 +248,7 @@
IGListWorkingRangeDelegate
-
@protocol IGListWorkingRangeDelegate < NSObject >
+
@protocol IGListWorkingRangeDelegate < NSObject >
@@ -266,14 +281,14 @@ IGListWorkingRangeDelegate
Declaration
@@ -331,14 +346,14 @@ Parameters
Declaration
@@ -381,8 +396,8 @@ Parameters
diff --git a/docs/Type Definitions.html b/docs/Type Definitions.html
index 69ce6896a..4dcfd79f1 100644
--- a/docs/Type Definitions.html
+++ b/docs/Type Definitions.html
@@ -74,6 +74,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -118,8 +121,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -137,6 +143,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -155,6 +164,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -170,6 +182,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -256,12 +271,12 @@ Type Definitions
Declaration
Objective-C
-
typedef void ( ^ IGListUpdaterCompletion )( BOOL )
+
typedef void ( ^ IGListUpdaterCompletion )( BOOL )
Swift
-
typealias ListUpdaterCompletion = ( Bool ) -> Void
+
typealias ListUpdaterCompletion = ( Bool ) -> Void
@@ -311,13 +326,13 @@ Parameters
Declaration
Objective-C
-
typedef void ( ^ IGListSingleSectionCellConfigureBlock )(
+ typedef void ( ^ IGListSingleSectionCellConfigureBlock )(
id _Nonnull , __kindof UICollectionViewCell * _Nonnull )
Swift
-
typealias ListSingleSectionCellConfigureBlock = ( Any , UICollectionViewCell ) -> Void
+
typealias ListSingleSectionCellConfigureBlock = ( Any , UICollectionViewCell ) -> Void
@@ -375,13 +390,13 @@ Parameters
Declaration
Objective-C
-
typedef CGSize ( ^ IGListSingleSectionCellSizeBlock )(
+ typedef CGSize ( ^ IGListSingleSectionCellSizeBlock )(
id _Nonnull , id < IGListCollectionContext > _Nullable )
Swift
-
typealias ListSingleSectionCellSizeBlock = ( Any , ListCollectionContext ?) -> CGSize
+
typealias ListSingleSectionCellSizeBlock = ( Any , ListCollectionContext ?) -> CGSize
@@ -447,12 +462,12 @@ Return Value
Declaration
Objective-C
-
typedef void ( ^ IGListUpdatingCompletion )( BOOL )
+
typedef void ( ^ IGListUpdatingCompletion )( BOOL )
Swift
-
typealias ListUpdatingCompletion = ( Bool ) -> Void
+
typealias ListUpdatingCompletion = ( Bool ) -> Void
@@ -498,12 +513,12 @@ Parameters
Declaration
Objective-C
-
typedef void ( ^ IGListObjectTransitionBlock )( NSArray * _Nonnull )
+
typedef void ( ^ IGListObjectTransitionBlock )( NSArray * _Nonnull )
Swift
-
typealias ListObjectTransitionBlock = ([ Any ]) -> Void
+
typealias ListObjectTransitionBlock = ([ Any ]) -> Void
@@ -549,12 +564,12 @@ Parameters
Declaration
Objective-C
-
typedef void ( ^ IGListItemUpdateBlock )()
+
typedef void ( ^ IGListItemUpdateBlock )( void )
Swift
-
typealias ListItemUpdateBlock = () -> Void
+
typealias ListItemUpdateBlock = () -> Void
@@ -581,12 +596,12 @@ Declaration
Declaration
Objective-C
-
typedef void ( ^ IGListReloadUpdateBlock )()
+
typedef void ( ^ IGListReloadUpdateBlock )( void )
Swift
-
typealias ListReloadUpdateBlock = () -> Void
+
typealias ListReloadUpdateBlock = () -> Void
@@ -598,8 +613,8 @@ Declaration
diff --git a/docs/badge.svg b/docs/badge.svg
index 622fd043e..f47d948fa 100644
--- a/docs/badge.svg
+++ b/docs/badge.svg
@@ -1 +1,28 @@
-documentation documentation 98% 98%
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ documentation
+
+
+ documentation
+
+
+ 98%
+
+
+ 98%
+
+
+
diff --git a/docs/best-practices-and-faq.html b/docs/best-practices-and-faq.html
index c859492f7..c496d2033 100644
--- a/docs/best-practices-and-faq.html
+++ b/docs/best-practices-and-faq.html
@@ -74,6 +74,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -118,8 +121,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -137,6 +143,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -155,6 +164,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -170,6 +182,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -286,7 +301,7 @@ Does IGListKit
Does IGListKit
work with UITableView
?
No, but you can install the diffing subspec via CocoaPods .
-What’s the purpose of IGListCollectionView
?
+
Historically, we used this subclass to gain compile-time safety to prevent disallowed methods from being called on UICollectionView
, because IGListKit
handles model and view updates. However, it has since been removed. See discussion at #409 .
How can I manage cell selection and deselection?
@@ -336,13 +351,13 @@ Sh
IGListKit
does still use UICollectionView
‘s cell reuse, so you shouldn’t be concerned about performance.
Why does UICollectionViewFlowLayout
put everything in a new row?
-UICollectionViewFlowLayout
has its limitations, and it’s not well designed to support sections on the same line . Instead you should use IGListCollectionViewLayout
.
+UICollectionViewFlowLayout
has its limitations, and it’s not well designed to support sections on the same line . Instead you should use IGListCollectionViewLayout
.
What if I just want a section controller and don’t need the object?
Feel free to use a static string or number as your model. You can use this object as a key to find your section controller. Take a look at our example of this.
How do I make my cells diff and animate?
-Use IGListBindingSectionController
to automatically diff and animate your cells.
+Use IGListBindingSectionController
to automatically diff and animate your cells.
How can I power and update the number of items in a section controller with a dynamic array?
We recommend creating a model that owns an array to the items that power numberOfItems
. Checkout our Post example that has dynamic comment cells. Just be sure to check when your array changes:
@@ -365,8 +380,8 @@ Creating your first list
After installing IGListKit
, creating a new list is easy.
Creating a section controller
-Creating a new section controller is simple. Subclass IGListSectionController
and override at least cellForItemAtIndex:
and sizeForItemAtIndex:
.
+Creating a new section controller is simple. Subclass IGListSectionController
and override at least cellForItemAtIndex:
and sizeForItemAtIndex:
.
Take a look at LabelSectionController for an example section controller that handles a String
and configures a single cell with a UILabel
.
class LabelSectionController : ListSectionController {
@@ -253,7 +268,7 @@ Creating a section contro
Creating the UI
-After creating at least one section controller, you must create a UICollectionView
and IGListAdapter
.
+After creating at least one section controller, you must create a UICollectionView
and IGListAdapter
.
let layout = UICollectionViewFlowLayout ()
let collectionView = UICollectionView ( frame : . zero , collectionViewLayout : layout )
@@ -263,11 +278,11 @@ Creating the UI
-Note: This example is done within a UIViewController
and uses both a stock UICollectionViewFlowLayout
and IGListAdapterUpdater
. You can use your own layout and updater if you need advanced features!
+Note: This example is done within a UIViewController
and uses both a stock UICollectionViewFlowLayout
and IGListAdapterUpdater
. You can use your own layout and updater if you need advanced features!
Connecting the data source
-The last step is the IGListAdapter
‘s data source and returning some data.
+The last step is the IGListAdapter
‘s data source and returning some data.
func objects ( for listAdapter : ListAdapter ) -> [ ListDiffable ] {
// this can be anything!
return [ "Foo" , "Bar" , 42 , "Biz" ]
@@ -286,19 +301,19 @@ Connecting the data source
}
-After you have created the data source you need to connect it to the IGListAdapter
by setting its dataSource
property:
+After you have created the data source you need to connect it to the IGListAdapter
by setting its dataSource
property:
adapter . dataSource = self
-You can return an array of any type of data, as long as it conforms to IGListDiffable
.
+You can return an array of any type of data, as long as it conforms to IGListDiffable
.
Immutability
-The data should be immutable. If you return mutable objects that you will be editing later, IGListKit
will not be able to diff the models accurately. This is because the instances have already been changed. Thus, the updates to the objects would be lost. Instead, always return a newly instantiated, immutable object and implement IGListDiffable
.
+The data should be immutable. If you return mutable objects that you will be editing later, IGListKit
will not be able to diff the models accurately. This is because the instances have already been changed. Thus, the updates to the objects would be lost. Instead, always return a newly instantiated, immutable object and implement IGListDiffable
.
Diffing
IGListKit
uses an algorithm adapted from a paper titled A technique for isolating differences between files by Paul Heckel. This algorithm uses a technique known as the longest common subsequence to find a minimal diff between collections in linear time O(n)
. It finds all inserts , deletes , updates , and moves between arrays of data.
-To add custom, diffable models, you need to conform to the IGListDiffable
protocol and implement diffIdentifier()
and isEqual(toDiffableObject:)
.
+To add custom, diffable models, you need to conform to the IGListDiffable
protocol and implement diffIdentifier()
and isEqual(toDiffableObject:)
.
Note: an object’s diffIdentifier()
should never change. If an object mutates it’s diffIdentifer()
the behavior of IGListKit is undefined (and almost assuredly undesirable).
@@ -324,8 +339,8 @@ Diffing
Both shayne
and ann
represent the same unique data because they share the same primaryKey
, but they are not equal because their names are different.
-To represent this in IGListKit
’s diffing, add and implement the IGListDiffable
protocol:
-extension User : IGListDiffable {
+To represent this in IGListKit
’s diffing, add and implement the IGListDiffable
protocol:
+extension User : ListDiffable {
func diffIdentifier () -> NSObjectProtocol {
return primaryKey
}
@@ -346,7 +361,7 @@ Diffing
Diffing outside of IGListKit
-If you want to use the diffing algorithm outside of IGListAdapter
and UICollectionView
, you can! The diffing algorithm was built with the flexibility to be used with any models that conform to IGListDiffable
.
+If you want to use the diffing algorithm outside of IGListAdapter
and UICollectionView
, you can! The diffing algorithm was built with the flexibility to be used with any models that conform to IGListDiffable
.
let result = ListDiff ( oldArray : oldUsers , newArray : newUsers , . equality )
@@ -356,7 +371,7 @@ Working Range
A working range is a range of section controllers who aren’t yet visible, but are near the screen. Section controllers are notified of their entrance and exit to this range. This concept lets your section controllers prepare content before they come on screen (e.g. download images).
-The IGListAdapter
must be initialized with a range value in order to work. This value is a multiple of the visible height or width, depending on the scroll-direction.
+The IGListAdapter
must be initialized with a range value in order to work. This value is a multiple of the visible height or width, depending on the scroll-direction.
let adapter = ListAdapter ( updater : ListAdapterUpdater (),
viewController : self ,
workingRangeSize : 1 ) // 1 before/after visible objects
@@ -367,21 +382,21 @@ Working Range
You can set the weak workingRangeDelegate
on a section controller to receive events.
Supplementary Views
-Adding supplementary views to section controllers is as simple as setting the (weak) supplementaryViewSource
and implementing the IGListSupplementaryViewSource
protocol. This protocol works nearly the same as returning and configuring cells.
+Adding supplementary views to section controllers is as simple as setting the (weak) supplementaryViewSource
and implementing the IGListSupplementaryViewSource
protocol. This protocol works nearly the same as returning and configuring cells.
Display Delegate
Section controllers can set the weak displayDelegate
delegate to an object, including self
, to receive display events about a section controller and individual cells.
Custom Updaters
-The default IGListAdapterUpdater
should handle any UICollectionView
update that you need. However, if you find the functionality lacking, or want to perform updates in a very specific way, you can create an object that conforms to the IGListUpdatingDelegate
protocol and initialize a new IGListAdapter
with it.
+The default IGListAdapterUpdater
should handle any UICollectionView
update that you need. However, if you find the functionality lacking, or want to perform updates in a very specific way, you can create an object that conforms to the IGListUpdatingDelegate
protocol and initialize a new IGListAdapter
with it.
-Check out the updater IGListReloadDataUpdater
(used in unit tests) for an example.
+Check out the updater IGListReloadDataUpdater
(used in unit tests) for an example.
diff --git a/docs/iglistdiffable-and-equality.html b/docs/iglistdiffable-and-equality.html
index 8185aa874..2530891fc 100644
--- a/docs/iglistdiffable-and-equality.html
+++ b/docs/iglistdiffable-and-equality.html
@@ -74,6 +74,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -118,8 +121,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -137,6 +143,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -155,6 +164,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -170,6 +182,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -232,17 +247,17 @@
IGListDiffable and Equality
-This guide explains the IGListDiffable
protocol and how to write good -isEqual:
methods.
+This guide explains the IGListDiffable
protocol and how to write good -isEqual:
methods.
Background
-The IGListDiffable
protocol requires clients to implement two methods, -diffIdentifier
and -isEqualToDiffableObject:
.
+The IGListDiffable
protocol requires clients to implement two methods, -diffIdentifier
and -isEqualToDiffableObject:
.
The method -isEqualToDiffableObject:
should perform the same type of check as -isEqual:
, but without impacting performance characteristics, like in Objective-C containers such as NSDictionary
and NSSet
.
Why are both of these methods required for diffing? The point of having the two methods has to do with identity and equality , where the diff identifier uniquely identifies data (common scenario is primary key in databases). Equality comes into play when comparing the values of two uniquely identical objects (driving reloading).
See also: #509
-IGListDiffable
bare minimum
+
The quickest way to get started with diffable models is use the object itself as the identifier, and use the superclass’s -[NSObject isEqual:]
implementation for equality:
- ( id < NSObject > ) diffIdentifier {
@@ -298,13 +313,13 @@ Writing better Equality
@end
-Using both IGListDiffable
and -isEqual:
+
Making your objects work universally with Objective-C containers and IGListKit
is easy once you’ve implemented -isEqual:
and -hash
.
@interface User < IGListDiffable >
-// properties...
-
+// properties...
+
@end
@implementation User
@@ -323,8 +338,8 @@ Requirements
-Xcode 8.0+
+Xcode 9.0+
iOS 8.0+
tvOS 9.0+
macOS 10.10+ (diffing algorithm components only)
@@ -332,6 +347,10 @@ Carthage
For advanced usage, see our Installation Guide .
Getting Started
+ $ git clone https://github.com/Instagram/IGListKit.git
+$ cd IGListKit/
+$ ./scripts/setup.sh
+
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -137,6 +143,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -155,6 +164,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -170,6 +182,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -269,8 +284,8 @@ Carthage
diff --git a/docs/migration.html b/docs/migration.html
index 514c85783..43fb152ef 100644
--- a/docs/migration.html
+++ b/docs/migration.html
@@ -74,6 +74,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -118,8 +121,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -137,6 +143,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -155,6 +164,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -170,6 +182,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -242,12 +257,12 @@ From 2.x to 3.x
IG prefix removed for Swift
-We have improved how IGListKit
APIs get imported into Swift. The IG
prefix has been removed for Swift clients. For example, IGListSectionController
becomes ListSectionController
instead. Along with other interoperability improvements, this makes IGListKit
more readable in Swift.
+We have improved how IGListKit
APIs get imported into Swift. The IG
prefix has been removed for Swift clients. For example, IGListSectionController
becomes ListSectionController
instead. Along with other interoperability improvements, this makes IGListKit
more readable in Swift.
To migrate, use Xcode’s Find navigator (command-3), search for IGList
, and replace with List
.
IGListSectionType
removed
-In order to make building section controllers even easier, we removed the protocol and absorbed all of the methods into IGListSectionController
with default implementations.
+In order to make building section controllers even easier, we removed the protocol and absorbed all of the methods into IGListSectionController
with default implementations.
numberOfItems
returns 1 item
@@ -256,40 +271,40 @@ IGListSection
cellForItemAtIndex:
asserts (you must override this method)
-In Objective-C, all you need to do is find & remove all uses of IGListSectionType
. This includes IGListSectionController
and IGListAdapterDataSource
implementations.
+In Objective-C, all you need to do is find & remove all uses of IGListSectionType
. This includes IGListSectionController
and IGListAdapterDataSource
implementations.
In Swift, you will also need to add override
keywords to all methods.
The compiler should catch all instances that need fixed.
-IGListBindingSectionController
+
-If you were using IGListDiff(...)
inside a section controller to compute diffs for cells, we recommend that you start using IGListBindingSectionController
which wraps this behavior in an elegant and tested API.
-Removed IGListCollectionView
+If you were using IGListDiff(...)
inside a section controller to compute diffs for cells, we recommend that you start using IGListBindingSectionController
which wraps this behavior in an elegant and tested API.
+
You can simply find regex IGListCollectionView([ |\*|\(])
and replace with regex UICollectionView$1
in your project to fix this.
Removed IGListGridCollectionViewLayout
-Start using IGListCollectionViewLayout
instead of IGListGridCollectionViewLayout
.
+Start using IGListCollectionViewLayout
instead of IGListGridCollectionViewLayout
.
scrollDirection
is not yet supported. If you need horizontal scrolling, please use UICollectionViewFlowLayout
or file an issue.
Set minimumLineSpacing
on your section controllers instead of the layout
Set minimumInteritemSpacing
on your section controllers instead of the layout
-Return the size of your cells in sizeForItemAtIndex: instead of setting it on the layout.
+Return the size of your cells in sizeForItemAtIndex: instead of setting it on the layout.
Item mutations must be wrapped in -[IGListCollectionContext performBatchAnimated:completion:]
-To fix some rare crashes, all item mutations must now be performed inside a batch block and done on the IGListBatchContext
object instead.
+To fix some rare crashes, all item mutations must now be performed inside a batch block and done on the IGListBatchContext
object instead.
Objective-C
- // OLD
- self . expanded = YES ;
+// OLD
+self . expanded = YES ;
[ self . collectionContext insertInSectionController : self atIndexes :[ NSIndexSet indexSetWithIndex :]];
-// NEW
- [ self . collectionContext performBatchAnimated : YES updates : ^ ( id < IGListBatchContext > batchContext ) {
+// NEW
+[ self . collectionContext performBatchAnimated : YES updates : ^ ( id < IGListBatchContext > batchContext ) {
self . expanded = YES ;
[ batchContext insertInSectionController : self atIndexes :[ NSIndexSet indexSetWithIndex : 1 ]];
} completion : nil ];
@@ -311,18 +326,18 @@ From 1.x to 2.x
For details on all changes in IGListKit
2.0.0, please see the release notes .
-
+
-If you relied on the default NSObject<IGListDiffable>
category, you will need to add IGListDiffable
conformance to each of your models. To get things working as they did in 1.0, simply add the following to each of your models:
+If you relied on the default NSObject<IGListDiffable>
category, you will need to add IGListDiffable
conformance to each of your models. To get things working as they did in 1.0, simply add the following to each of your models:
Objective-C
#import <IGListKit/IGListDiffable.h>
-// Header
- @interface MyModel < IGListDiffable >
+// Header
+@interface MyModel < IGListDiffable >
-// Implementation
- - ( id < NSObject > ) diffIdentifier {
+// Implementation
+- ( id < NSObject > ) diffIdentifier {
return self ;
}
@@ -350,8 +365,8 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -137,6 +143,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -155,6 +164,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -170,6 +182,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -809,8 +824,8 @@ Wrapping up
diff --git a/docs/search.json b/docs/search.json
index 7f569dc34..d4fd2f98c 100644
--- a/docs/search.json
+++ b/docs/search.json
@@ -1 +1 @@
-{"Functions.html#/c:@F@IGListDiff":{"name":"IGListDiff","abstract":"Creates a diff using indexes between two collections.
"},"Functions.html#/c:@F@IGListDiffPaths":{"name":"IGListDiffPaths","abstract":"Creates a diff using index paths between two collections.
"},"Functions.html#/c:IGListExperiments.h@F@IGListExperimentEnabled":{"name":"IGListExperimentEnabled","abstract":"Check if an experiment is enabled in a bitmask.
"},"Functions.html#/c:@F@IGListDiffExperiment":{"name":"IGListDiffExperiment","abstract":"Performs an index diff with an experiment bitmask.
"},"Functions.html#/c:@F@IGListDiffPathsExperiment":{"name":"IGListDiffPathsExperiment","abstract":"Performs a index path diff with an experiment bitmask.
"},"Type Definitions.html#/c:IGListAdapter.h@T@IGListUpdaterCompletion":{"name":"IGListUpdaterCompletion","abstract":"A block to execute when the list updates are completed.
"},"Type Definitions.html#/c:IGListSingleSectionController.h@T@IGListSingleSectionCellConfigureBlock":{"name":"IGListSingleSectionCellConfigureBlock","abstract":"A block used to configure cells.
"},"Type Definitions.html#/c:IGListSingleSectionController.h@T@IGListSingleSectionCellSizeBlock":{"name":"IGListSingleSectionCellSizeBlock","abstract":"A block that returns the size for the cell given the collection context.
"},"Type Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListUpdatingCompletion":{"name":"IGListUpdatingCompletion","abstract":"A completion block to execute when updates are finished.
"},"Type Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListObjectTransitionBlock":{"name":"IGListObjectTransitionBlock","abstract":"A block to be called when the adapter applies changes to the collection view.
"},"Type Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListItemUpdateBlock":{"name":"IGListItemUpdateBlock","abstract":"A block that contains all of the updates.
"},"Type Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListReloadUpdateBlock":{"name":"IGListReloadUpdateBlock","abstract":"A block to be called when an adapter reloads the collection view.
"},"Protocols/IGListWorkingRangeDelegate.html#/c:objc(pl)IGListWorkingRangeDelegate(im)listAdapter:sectionControllerWillEnterWorkingRange:":{"name":"-listAdapter:sectionControllerWillEnterWorkingRange:","abstract":"Notifies the delegate that an section controller will enter the working range.
","parent_name":"IGListWorkingRangeDelegate"},"Protocols/IGListWorkingRangeDelegate.html#/c:objc(pl)IGListWorkingRangeDelegate(im)listAdapter:sectionControllerDidExitWorkingRange:":{"name":"-listAdapter:sectionControllerDidExitWorkingRange:","abstract":"Notifies the delegate that an section controller exited the working range.
","parent_name":"IGListWorkingRangeDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)objectLookupPointerFunctions":{"name":"-objectLookupPointerFunctions","abstract":"Asks the delegate for the pointer functions for looking up an object in a collection.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)performUpdateWithCollectionView:fromObjects:toObjects:animated:objectTransitionBlock:completion:":{"name":"-performUpdateWithCollectionView:fromObjects:toObjects:animated:objectTransitionBlock:completion:","abstract":"Tells the delegate to perform a section transition from an old array of objects to a new one.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)insertItemsIntoCollectionView:indexPaths:":{"name":"-insertItemsIntoCollectionView:indexPaths:","abstract":"Tells the delegate to perform item inserts at the given index paths.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)deleteItemsFromCollectionView:indexPaths:":{"name":"-deleteItemsFromCollectionView:indexPaths:","abstract":"Tells the delegate to perform item deletes at the given index paths.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)moveItemInCollectionView:fromIndexPath:toIndexPath:":{"name":"-moveItemInCollectionView:fromIndexPath:toIndexPath:","abstract":"Tells the delegate to move an item from and to given index paths.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)reloadItemInCollectionView:fromIndexPath:toIndexPath:":{"name":"-reloadItemInCollectionView:fromIndexPath:toIndexPath:","abstract":"Tells the delegate to reload an item from and to given index paths.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)reloadDataWithCollectionView:reloadUpdateBlock:completion:":{"name":"-reloadDataWithCollectionView:reloadUpdateBlock:completion:","abstract":"Completely reload data in the collection.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)reloadCollectionView:sections:":{"name":"-reloadCollectionView:sections:","abstract":"Completely reload each section in the collection view.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)performUpdateWithCollectionView:animated:itemUpdates:completion:":{"name":"-performUpdateWithCollectionView:animated:itemUpdates:completion:","abstract":"Perform an item update block in the collection view.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListSupplementaryViewSource.html#/c:objc(pl)IGListSupplementaryViewSource(im)supportedElementKinds":{"name":"-supportedElementKinds","abstract":"Asks the SupplementaryViewSource for an array of supported element kinds.
","parent_name":"IGListSupplementaryViewSource"},"Protocols/IGListSupplementaryViewSource.html#/c:objc(pl)IGListSupplementaryViewSource(im)viewForSupplementaryElementOfKind:atIndex:":{"name":"-viewForSupplementaryElementOfKind:atIndex:","abstract":"Asks the SupplementaryViewSource for a configured supplementary view for the specified kind and index.
","parent_name":"IGListSupplementaryViewSource"},"Protocols/IGListSupplementaryViewSource.html#/c:objc(pl)IGListSupplementaryViewSource(im)sizeForSupplementaryViewOfKind:atIndex:":{"name":"-sizeForSupplementaryViewOfKind:atIndex:","abstract":"Asks the SupplementaryViewSource for the size of a supplementary view for the given kind and index path.
","parent_name":"IGListSupplementaryViewSource"},"Protocols/IGListSingleSectionControllerDelegate.html#/c:objc(pl)IGListSingleSectionControllerDelegate(im)didSelectSectionController:withObject:":{"name":"-didSelectSectionController:withObject:","abstract":"Tells the delegate that the section controller was selected.
","parent_name":"IGListSingleSectionControllerDelegate"},"Protocols/IGListScrollDelegate.html#/c:objc(pl)IGListScrollDelegate(im)listAdapter:didScrollSectionController:":{"name":"-listAdapter:didScrollSectionController:","abstract":"Tells the delegate that the section controller was scrolled on screen.
","parent_name":"IGListScrollDelegate"},"Protocols/IGListScrollDelegate.html#/c:objc(pl)IGListScrollDelegate(im)listAdapter:willBeginDraggingSectionController:":{"name":"-listAdapter:willBeginDraggingSectionController:","abstract":"Tells the delegate that the section controller will be dragged on screen.
","parent_name":"IGListScrollDelegate"},"Protocols/IGListScrollDelegate.html#/c:objc(pl)IGListScrollDelegate(im)listAdapter:didEndDraggingSectionController:willDecelerate:":{"name":"-listAdapter:didEndDraggingSectionController:willDecelerate:","abstract":"Tells the delegate that the section controller did end dragging on screen.
","parent_name":"IGListScrollDelegate"},"Protocols/IGListScrollDelegate.html#/c:objc(pl)IGListScrollDelegate(im)listAdapter:didEndDeceleratingSectionController:":{"name":"-listAdapter:didEndDeceleratingSectionController:","abstract":"Undocumented
","parent_name":"IGListScrollDelegate"},"Protocols/IGListDisplayDelegate.html#/c:objc(pl)IGListDisplayDelegate(im)listAdapter:willDisplaySectionController:":{"name":"-listAdapter:willDisplaySectionController:","abstract":"Tells the delegate that the specified section controller is about to be displayed.
","parent_name":"IGListDisplayDelegate"},"Protocols/IGListDisplayDelegate.html#/c:objc(pl)IGListDisplayDelegate(im)listAdapter:didEndDisplayingSectionController:":{"name":"-listAdapter:didEndDisplayingSectionController:","abstract":"Tells the delegate that the specified section controller is no longer being displayed.
","parent_name":"IGListDisplayDelegate"},"Protocols/IGListDisplayDelegate.html#/c:objc(pl)IGListDisplayDelegate(im)listAdapter:willDisplaySectionController:cell:atIndex:":{"name":"-listAdapter:willDisplaySectionController:cell:atIndex:","abstract":"Tells the delegate that a cell in the specified list is about to be displayed.
","parent_name":"IGListDisplayDelegate"},"Protocols/IGListDisplayDelegate.html#/c:objc(pl)IGListDisplayDelegate(im)listAdapter:didEndDisplayingSectionController:cell:atIndex:":{"name":"-listAdapter:didEndDisplayingSectionController:cell:atIndex:","abstract":"Tells the delegate that a cell in the specified list is no longer being displayed.
","parent_name":"IGListDisplayDelegate"},"Protocols/IGListDiffable.html#/c:objc(pl)IGListDiffable(im)diffIdentifier":{"name":"-diffIdentifier","abstract":"Returns a key that uniquely identifies the object.
","parent_name":"IGListDiffable"},"Protocols/IGListDiffable.html#/c:objc(pl)IGListDiffable(im)isEqualToDiffableObject:":{"name":"-isEqualToDiffableObject:","abstract":"Returns whether the receiver and a given object are equal.
","parent_name":"IGListDiffable"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(py)containerSize":{"name":"containerSize","abstract":"The size of the collection view. You can use this for sizing cells.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(py)containerInset":{"name":"containerInset","abstract":"The content insets of the collection view. You can use this for sizing cells.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(py)insetContainerSize":{"name":"insetContainerSize","abstract":"The size of the collection view with content insets applied.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)containerSizeForSectionController:":{"name":"-containerSizeForSectionController:","abstract":"Returns size of the collection view relative to the section controller.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)indexForCell:sectionController:":{"name":"-indexForCell:sectionController:","abstract":"Returns the index of the specified cell in the collection relative to the section controller.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)cellForItemAtIndex:sectionController:":{"name":"-cellForItemAtIndex:sectionController:","abstract":"Returns the cell in the collection at the specified index for the section controller.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)visibleCellsForSectionController:":{"name":"-visibleCellsForSectionController:","abstract":"Returns the visible cells for the given section controller.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)visibleIndexPathsForSectionController:":{"name":"-visibleIndexPathsForSectionController:","abstract":"Returns the visible paths for the given section controller.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)deselectItemAtIndex:sectionController:animated:":{"name":"-deselectItemAtIndex:sectionController:animated:","abstract":"Deselects a cell in the collection.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)selectItemAtIndex:sectionController:animated:scrollPosition:":{"name":"-selectItemAtIndex:sectionController:animated:scrollPosition:","abstract":"Selects a cell in the collection.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)dequeueReusableCellOfClass:forSectionController:atIndex:":{"name":"-dequeueReusableCellOfClass:forSectionController:atIndex:","abstract":"Dequeues a cell from the collection view reuse pool.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)dequeueReusableCellWithNibName:bundle:forSectionController:atIndex:":{"name":"-dequeueReusableCellWithNibName:bundle:forSectionController:atIndex:","abstract":"Dequeues a cell from the collection view reuse pool.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)dequeueReusableCellFromStoryboardWithIdentifier:forSectionController:atIndex:":{"name":"-dequeueReusableCellFromStoryboardWithIdentifier:forSectionController:atIndex:","abstract":"Dequeues a storyboard prototype cell from the collection view reuse pool.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)dequeueReusableSupplementaryViewOfKind:forSectionController:class:atIndex:":{"name":"-dequeueReusableSupplementaryViewOfKind:forSectionController:class:atIndex:","abstract":"Dequeues a supplementary view from the collection view reuse pool.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)dequeueReusableSupplementaryViewFromStoryboardOfKind:withIdentifier:forSectionController:atIndex:":{"name":"-dequeueReusableSupplementaryViewFromStoryboardOfKind:withIdentifier:forSectionController:atIndex:","abstract":"Dequeues a supplementary view from the collection view reuse pool.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)dequeueReusableSupplementaryViewOfKind:forSectionController:nibName:bundle:atIndex:":{"name":"-dequeueReusableSupplementaryViewOfKind:forSectionController:nibName:bundle:atIndex:","abstract":"Dequeues a supplementary view from the collection view reuse pool.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)invalidateLayoutForSectionController:completion:":{"name":"-invalidateLayoutForSectionController:completion:","abstract":"Invalidate the backing UICollectionViewLayout
for all items in the section controller.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)performBatchAnimated:updates:completion:":{"name":"-performBatchAnimated:updates:completion:","abstract":"Batches and performs many cell-level updates in a single transaction.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)scrollToSectionController:atIndex:scrollPosition:animated:":{"name":"-scrollToSectionController:atIndex:scrollPosition:animated:","abstract":"Scrolls to the specified section controller in the list.
","parent_name":"IGListCollectionContext"},"Protocols/IGListBindingSectionControllerSelectionDelegate.html#/c:objc(pl)IGListBindingSectionControllerSelectionDelegate(im)sectionController:didSelectItemAtIndex:viewModel:":{"name":"-sectionController:didSelectItemAtIndex:viewModel:","abstract":"Tells the delegate that a cell at a given index was selected.
","parent_name":"IGListBindingSectionControllerSelectionDelegate"},"Protocols/IGListBindingSectionControllerSelectionDelegate.html#/c:objc(pl)IGListBindingSectionControllerSelectionDelegate(im)sectionController:didDeselectItemAtIndex:viewModel:":{"name":"-sectionController:didDeselectItemAtIndex:viewModel:","abstract":"Undocumented
","parent_name":"IGListBindingSectionControllerSelectionDelegate"},"Protocols/IGListBindingSectionControllerDataSource.html#/c:objc(pl)IGListBindingSectionControllerDataSource(im)sectionController:viewModelsForObject:":{"name":"-sectionController:viewModelsForObject:","abstract":"Create an array of view models given a top-level object.
","parent_name":"IGListBindingSectionControllerDataSource"},"Protocols/IGListBindingSectionControllerDataSource.html#/c:objc(pl)IGListBindingSectionControllerDataSource(im)sectionController:cellForViewModel:atIndex:":{"name":"-sectionController:cellForViewModel:atIndex:","abstract":"Return a dequeued cell for a given view model.
","parent_name":"IGListBindingSectionControllerDataSource"},"Protocols/IGListBindingSectionControllerDataSource.html#/c:objc(pl)IGListBindingSectionControllerDataSource(im)sectionController:sizeForViewModel:atIndex:":{"name":"-sectionController:sizeForViewModel:atIndex:","abstract":"Return a cell size for a given view model.
","parent_name":"IGListBindingSectionControllerDataSource"},"Protocols/IGListBindable.html#/c:objc(pl)IGListBindable(im)bindViewModel:":{"name":"-bindViewModel:","abstract":"Tells the cell to configure itself with the given view model.
","parent_name":"IGListBindable"},"Protocols/IGListBatchContext.html#/c:objc(pl)IGListBatchContext(im)reloadInSectionController:atIndexes:":{"name":"-reloadInSectionController:atIndexes:","abstract":"Reloads cells in the section controller.
","parent_name":"IGListBatchContext"},"Protocols/IGListBatchContext.html#/c:objc(pl)IGListBatchContext(im)insertInSectionController:atIndexes:":{"name":"-insertInSectionController:atIndexes:","abstract":"Inserts cells in the list.
","parent_name":"IGListBatchContext"},"Protocols/IGListBatchContext.html#/c:objc(pl)IGListBatchContext(im)deleteInSectionController:atIndexes:":{"name":"-deleteInSectionController:atIndexes:","abstract":"Deletes cells in the list.
","parent_name":"IGListBatchContext"},"Protocols/IGListBatchContext.html#/c:objc(pl)IGListBatchContext(im)moveInSectionController:fromIndex:toIndex:":{"name":"-moveInSectionController:fromIndex:toIndex:","abstract":"Moves a cell from one index to another within the section controller.
","parent_name":"IGListBatchContext"},"Protocols/IGListBatchContext.html#/c:objc(pl)IGListBatchContext(im)reloadSectionController:":{"name":"-reloadSectionController:","abstract":"Reloads the entire section controller.
","parent_name":"IGListBatchContext"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willPerformBatchUpdatesWithCollectionView:":{"name":"-listAdapterUpdater:willPerformBatchUpdatesWithCollectionView:","abstract":"Notifies the delegate that the updater will call -[UICollectionView performBatchUpdates:completion:]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:didPerformBatchUpdates:collectionView:":{"name":"-listAdapterUpdater:didPerformBatchUpdates:collectionView:","abstract":"Notifies the delegate that the updater successfully finished -[UICollectionView performBatchUpdates:completion:]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willInsertIndexPaths:collectionView:":{"name":"-listAdapterUpdater:willInsertIndexPaths:collectionView:","abstract":"Notifies the delegate that the updater will call -[UICollectionView insertItemsAtIndexPaths:]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willDeleteIndexPaths:collectionView:":{"name":"-listAdapterUpdater:willDeleteIndexPaths:collectionView:","abstract":"Notifies the delegate that the updater will call -[UICollectionView deleteItemsAtIndexPaths:]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willMoveFromIndexPath:toIndexPath:collectionView:":{"name":"-listAdapterUpdater:willMoveFromIndexPath:toIndexPath:collectionView:","abstract":"Notifies the delegate that the updater will call -[UICollectionView moveItemAtIndexPath:toIndexPath:]
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willReloadIndexPaths:collectionView:":{"name":"-listAdapterUpdater:willReloadIndexPaths:collectionView:","abstract":"Notifies the delegate that the updater will call -[UICollectionView reloadItemsAtIndexPaths:]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willReloadSections:collectionView:":{"name":"-listAdapterUpdater:willReloadSections:collectionView:","abstract":"Notifies the delegate that the updater will call -[UICollectionView reloadSections:]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willReloadDataWithCollectionView:":{"name":"-listAdapterUpdater:willReloadDataWithCollectionView:","abstract":"Notifies the delegate that the updater will call -[UICollectionView reloadData]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:didReloadDataWithCollectionView:":{"name":"-listAdapterUpdater:didReloadDataWithCollectionView:","abstract":"Notifies the delegate that the updater successfully called -[UICollectionView reloadData]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willCrashWithException:fromObjects:toObjects:updates:":{"name":"-listAdapterUpdater:willCrashWithException:fromObjects:toObjects:updates:","abstract":"Notifies the delegate that the collection view threw an exception in -[UICollectionView performBatchUpdates:completion:]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterDelegate.html#/c:objc(pl)IGListAdapterDelegate(im)listAdapter:willDisplayObject:atIndex:":{"name":"-listAdapter:willDisplayObject:atIndex:","abstract":"Notifies the delegate that a list object is about to be displayed.
","parent_name":"IGListAdapterDelegate"},"Protocols/IGListAdapterDelegate.html#/c:objc(pl)IGListAdapterDelegate(im)listAdapter:didEndDisplayingObject:atIndex:":{"name":"-listAdapter:didEndDisplayingObject:atIndex:","abstract":"Notifies the delegate that a list object is no longer being displayed.
","parent_name":"IGListAdapterDelegate"},"Protocols/IGListAdapterDataSource.html#/c:objc(pl)IGListAdapterDataSource(im)objectsForListAdapter:":{"name":"-objectsForListAdapter:","abstract":"Asks the data source for the objects to display in the list.
","parent_name":"IGListAdapterDataSource"},"Protocols/IGListAdapterDataSource.html#/c:objc(pl)IGListAdapterDataSource(im)listAdapter:sectionControllerForObject:":{"name":"-listAdapter:sectionControllerForObject:","abstract":"Asks the data source for a section controller for the specified object in the list.
","parent_name":"IGListAdapterDataSource"},"Protocols/IGListAdapterDataSource.html#/c:objc(pl)IGListAdapterDataSource(im)emptyViewForListAdapter:":{"name":"-emptyViewForListAdapter:","abstract":"Asks the data source for a view to use as the collection view background when the list is empty.
","parent_name":"IGListAdapterDataSource"},"Protocols/IGListAdapterDataSource.html":{"name":"IGListAdapterDataSource","abstract":"Implement this protocol to provide data to an IGListAdapter
.
"},"Protocols/IGListAdapterDelegate.html":{"name":"IGListAdapterDelegate","abstract":"Conform to IGListAdapterDelegate
to receive display events for objects in a list.
"},"Protocols/IGListAdapterUpdaterDelegate.html":{"name":"IGListAdapterUpdaterDelegate","abstract":"A protocol that receives events about IGListAdapterUpdater
operations.
"},"Protocols/IGListBatchContext.html":{"name":"IGListBatchContext","abstract":"Objects conforming to the IGListBatchContext protocol provide a way for section controllers to mutate their cells or"},"Protocols/IGListBindable.html":{"name":"IGListBindable","abstract":"
A protocol for cells that configure themselves given a view model.
"},"Protocols/IGListBindingSectionControllerDataSource.html":{"name":"IGListBindingSectionControllerDataSource","abstract":"A protocol that returns data to power cells in an IGListBindingSectionController
.
"},"Protocols/IGListBindingSectionControllerSelectionDelegate.html":{"name":"IGListBindingSectionControllerSelectionDelegate","abstract":"A protocol that handles cell selection events in an IGListBindingSectionController
.
"},"Protocols/IGListCollectionContext.html":{"name":"IGListCollectionContext","abstract":"The collection context provides limited access to the collection-related information that"},"Protocols/IGListDiffable.html":{"name":"IGListDiffable","abstract":"
The IGListDiffable
protocol provides methods needed to compare the identity and equality of two objects.
"},"Protocols/IGListDisplayDelegate.html":{"name":"IGListDisplayDelegate","abstract":"Implement this protocol to receive display events for a section controller when it is on screen.
"},"Protocols/IGListScrollDelegate.html":{"name":"IGListScrollDelegate","abstract":"Implement this protocol to receive display events for a section controller when it is on screen.
"},"Protocols/IGListSingleSectionControllerDelegate.html":{"name":"IGListSingleSectionControllerDelegate","abstract":"A delegate that can receive selection events on an IGListSingleSectionController
.
"},"Protocols/IGListSupplementaryViewSource.html":{"name":"IGListSupplementaryViewSource","abstract":"Conform to this protocol to provide information about a list’s supplementary views. This data is used in"},"Protocols/IGListUpdatingDelegate.html":{"name":"IGListUpdatingDelegate","abstract":"
Implement this protocol in order to handle both section and row based update events. Implementation should forward or"},"Protocols/IGListWorkingRangeDelegate.html":{"name":"IGListWorkingRangeDelegate","abstract":"
Implement this protocol to receive working range events for a list.
"},"Enums/IGListExperiment.html#/c:@E@IGListExperiment@IGListExperimentNone":{"name":"IGListExperimentNone","abstract":"Specifies no experiments.
","parent_name":"IGListExperiment"},"Enums/IGListExperiment.html#/c:@E@IGListExperiment@IGListExperimentBackgroundDiffing":{"name":"IGListExperimentBackgroundDiffing","abstract":"Test updater diffing performed on a background queue.
","parent_name":"IGListExperiment"},"Enums/IGListExperiment.html#/c:@E@IGListExperiment@IGListExperimentReloadDataFallback":{"name":"IGListExperimentReloadDataFallback","abstract":"Test fallback to reloadData when too many update operations.
","parent_name":"IGListExperiment"},"Enums/IGListDiffOption.html#/c:@E@IGListDiffOption@IGListDiffPointerPersonality":{"name":"IGListDiffPointerPersonality","abstract":"Compare objects using pointer personality.
","parent_name":"IGListDiffOption"},"Enums/IGListDiffOption.html#/c:@E@IGListDiffOption@IGListDiffEquality":{"name":"IGListDiffEquality","abstract":"Compare objects using -[IGListDiffable isEqualToDiffableObject:]
.
","parent_name":"IGListDiffOption"},"Enums/IGListDiffOption.html":{"name":"IGListDiffOption","abstract":"An option for how to do comparisons between similar objects.
"},"Enums/IGListExperiment.html":{"name":"IGListExperiment","abstract":"Bitmask-able options used for pre-release feature testing.
"},"Constants.html#/c:@IGListKitVersionNumber":{"name":"IGListKitVersionNumber","abstract":"Project version number for IGListKit.
"},"Constants.html#/c:@IGListKitVersionString":{"name":"IGListKitVersionString","abstract":"Project version string for IGListKit.
"},"Classes/IGListStackedSectionController.html#/c:objc(cs)IGListStackedSectionController(im)initWithSectionControllers:":{"name":"-initWithSectionControllers:","abstract":"Creates a new stacked section controller.
","parent_name":"IGListStackedSectionController"},"Classes/IGListSingleSectionController.html#/c:objc(cs)IGListSingleSectionController(im)initWithCellClass:configureBlock:sizeBlock:":{"name":"-initWithCellClass:configureBlock:sizeBlock:","abstract":"Creates a new section controller for a given cell type that will always have only one cell when present in a list.
","parent_name":"IGListSingleSectionController"},"Classes/IGListSingleSectionController.html#/c:objc(cs)IGListSingleSectionController(im)initWithNibName:bundle:configureBlock:sizeBlock:":{"name":"-initWithNibName:bundle:configureBlock:sizeBlock:","abstract":"Creates a new section controller for a given nib name and bundle that will always have only one cell when present in a list.
","parent_name":"IGListSingleSectionController"},"Classes/IGListSingleSectionController.html#/c:objc(cs)IGListSingleSectionController(im)initWithStoryboardCellIdentifier:configureBlock:sizeBlock:":{"name":"-initWithStoryboardCellIdentifier:configureBlock:sizeBlock:","abstract":"Creates a new section controller for a given storyboard cell identifier that will always have only one cell when present in a list.
","parent_name":"IGListSingleSectionController"},"Classes/IGListSingleSectionController.html#/c:objc(cs)IGListSingleSectionController(py)selectionDelegate":{"name":"selectionDelegate","abstract":"An optional delegate that handles selection and deselection.
","parent_name":"IGListSingleSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(im)numberOfItems":{"name":"-numberOfItems","abstract":"Returns the number of items in the section.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(im)sizeForItemAtIndex:":{"name":"-sizeForItemAtIndex:","abstract":"The specific size for the item at the specified index.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(im)cellForItemAtIndex:":{"name":"-cellForItemAtIndex:","abstract":"Return a dequeued cell for a given index.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(im)didUpdateToObject:":{"name":"-didUpdateToObject:","abstract":"Updates the section controller to a new object.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(im)didSelectItemAtIndex:":{"name":"-didSelectItemAtIndex:","abstract":"Tells the section controller that the cell at the specified index path was selected.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(im)didDeselectItemAtIndex:":{"name":"-didDeselectItemAtIndex:","abstract":"Tells the section controller that the cell at the specified index path was deselected.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)viewController":{"name":"viewController","abstract":"The view controller housing the adapter that created this section controller.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)collectionContext":{"name":"collectionContext","abstract":"A context object for interacting with the collection.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)section":{"name":"section","abstract":"Returns the section within the list for this section controller.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)isFirstSection":{"name":"isFirstSection","abstract":"Returns YES
if the section controller is the first section in the list, NO
otherwise.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)isLastSection":{"name":"isLastSection","abstract":"Returns YES
if the section controller is the last section in the list, NO
otherwise.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)inset":{"name":"inset","abstract":"The margins used to lay out content in the section controller.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)minimumLineSpacing":{"name":"minimumLineSpacing","abstract":"The minimum spacing to use between rows of items.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)minimumInteritemSpacing":{"name":"minimumInteritemSpacing","abstract":"The minimum spacing to use between items in the same row.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)supplementaryViewSource":{"name":"supplementaryViewSource","abstract":"The supplementary view source for the section controller. Can be nil
.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)displayDelegate":{"name":"displayDelegate","abstract":"An object that handles display events for the section controller. Can be nil
.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)workingRangeDelegate":{"name":"workingRangeDelegate","abstract":"An object that handles working range events for the section controller. Can be nil
.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)scrollDelegate":{"name":"scrollDelegate","abstract":"An object that handles scroll events for the section controller. Can be nil
.
","parent_name":"IGListSectionController"},"Classes/IGListMoveIndexPath.html#/c:objc(cs)IGListMoveIndexPath(py)from":{"name":"from","abstract":"An index path in the old collection.
","parent_name":"IGListMoveIndexPath"},"Classes/IGListMoveIndexPath.html#/c:objc(cs)IGListMoveIndexPath(py)to":{"name":"to","abstract":"An index path in the new collection.
","parent_name":"IGListMoveIndexPath"},"Classes/IGListMoveIndex.html#/c:objc(cs)IGListMoveIndex(py)from":{"name":"from","abstract":"An index in the old collection.
","parent_name":"IGListMoveIndex"},"Classes/IGListMoveIndex.html#/c:objc(cs)IGListMoveIndex(py)to":{"name":"to","abstract":"An index in the new collection.
","parent_name":"IGListMoveIndex"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(py)inserts":{"name":"inserts","abstract":"The indexes inserted into the new collection.
","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(py)deletes":{"name":"deletes","abstract":"The indexes deleted from the old collection.
","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(py)updates":{"name":"updates","abstract":"The indexes in the old collection that need updated.
","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(py)moves":{"name":"moves","abstract":"The moves from an index in the old collection to an index in the new collection.
","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(py)hasChanges":{"name":"hasChanges","abstract":"A Read-only boolean that indicates whether the result has any changes or not.","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(im)oldIndexForIdentifier:":{"name":"-oldIndexForIdentifier:","abstract":"
Returns the index of the object with the specified identifier before the diff.
","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(im)newIndexForIdentifier:":{"name":"-newIndexForIdentifier:","abstract":"Returns the index of the object with the specified identifier after the diff.
","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(im)resultForBatchUpdates":{"name":"-resultForBatchUpdates","abstract":"Creates a new result object with operations safe for use in UITableView
and UICollectionView
batch updates.
","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(py)inserts":{"name":"inserts","abstract":"The index paths inserted into the new collection.
","parent_name":"IGListIndexPathResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(py)deletes":{"name":"deletes","abstract":"The index paths deleted from the old collection.
","parent_name":"IGListIndexPathResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(py)updates":{"name":"updates","abstract":"The index paths in the old collection that need updated.
","parent_name":"IGListIndexPathResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(py)moves":{"name":"moves","abstract":"The moves from an index path in the old collection to an index path in the new collection.
","parent_name":"IGListIndexPathResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(py)hasChanges":{"name":"hasChanges","abstract":"A Read-only boolean that indicates whether the result has any changes or not.","parent_name":"IGListIndexPathResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(im)oldIndexPathForIdentifier:":{"name":"-oldIndexPathForIdentifier:","abstract":"
Returns the index path of the object with the specified identifier before the diff.
","parent_name":"IGListIndexPathResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(im)newIndexPathForIdentifier:":{"name":"-newIndexPathForIdentifier:","abstract":"Returns the index path of the object with the specified identifier after the diff.
","parent_name":"IGListIndexPathResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(im)resultForBatchUpdates":{"name":"-resultForBatchUpdates","abstract":"Creates a new result object with operations safe for use in UITableView
and UICollectionView
batch updates.
","parent_name":"IGListIndexPathResult"},"Classes/IGListGenericSectionController.html#/c:objc(cs)IGListGenericSectionController(py)object":{"name":"object","abstract":"The object mapped to this section controller. Matches the object provided in","parent_name":"IGListGenericSectionController"},"Classes/IGListGenericSectionController.html#/c:objc(cs)IGListGenericSectionController(im)didUpdateToObject:":{"name":"-didUpdateToObject:","abstract":"
Updates the section controller to a new object.
","parent_name":"IGListGenericSectionController"},"Classes/IGListCollectionViewLayout.html#/c:objc(cs)IGListCollectionViewLayout(py)scrollDirection":{"name":"scrollDirection","abstract":"Direction in which layout will be scrollable; items will be flowed in the perpendicular direction, newlining when they","parent_name":"IGListCollectionViewLayout"},"Classes/IGListCollectionViewLayout.html#/c:objc(cs)IGListCollectionViewLayout(py)stickyHeaderYOffset":{"name":"stickyHeaderYOffset","abstract":"
Set this to adjust the offset of the sticky headers in the scrolling direction. Can be used to change the sticky","parent_name":"IGListCollectionViewLayout"},"Classes/IGListCollectionViewLayout.html#/c:objc(cs)IGListCollectionViewLayout(im)initWithStickyHeaders:scrollDirection:topContentInset:stretchToEdge:":{"name":"-initWithStickyHeaders:scrollDirection:topContentInset:stretchToEdge:","abstract":"
Create and return a new collection view layout.
","parent_name":"IGListCollectionViewLayout"},"Classes/IGListCollectionViewLayout.html#/c:objc(cs)IGListCollectionViewLayout(im)initWithStickyHeaders:topContentInset:stretchToEdge:":{"name":"-initWithStickyHeaders:topContentInset:stretchToEdge:","abstract":"Create and return a new vertically scrolling collection view layout.
","parent_name":"IGListCollectionViewLayout"},"Classes/IGListBindingSectionController.html#/c:objc(cs)IGListBindingSectionController(py)dataSource":{"name":"dataSource","abstract":"A data source that transforms a top-level object into view models, and returns cells and sizes for given view models.
","parent_name":"IGListBindingSectionController"},"Classes/IGListBindingSectionController.html#/c:objc(cs)IGListBindingSectionController(py)selectionDelegate":{"name":"selectionDelegate","abstract":"A delegate that receives selection events from cells in an IGListBindingSectionController
instance.
","parent_name":"IGListBindingSectionController"},"Classes/IGListBindingSectionController.html#/c:objc(cs)IGListBindingSectionController(py)object":{"name":"object","abstract":"The object currently assigned to the section controller, if any.
","parent_name":"IGListBindingSectionController"},"Classes/IGListBindingSectionController.html#/c:objc(cs)IGListBindingSectionController(py)viewModels":{"name":"viewModels","abstract":"The array of view models created from the data source. Values are changed when the top-level object changes or by","parent_name":"IGListBindingSectionController"},"Classes/IGListBindingSectionController.html#/c:objc(cs)IGListBindingSectionController(im)updateAnimated:completion:":{"name":"-updateAnimated:completion:","abstract":"
Tells the section controller to query for new view models, diff the changes, and update its cells.
","parent_name":"IGListBindingSectionController"},"Classes/IGListBatchUpdateData.html#/c:objc(cs)IGListBatchUpdateData(py)insertSections":{"name":"insertSections","abstract":"Section insert indexes.
","parent_name":"IGListBatchUpdateData"},"Classes/IGListBatchUpdateData.html#/c:objc(cs)IGListBatchUpdateData(py)deleteSections":{"name":"deleteSections","abstract":"Section delete indexes.
","parent_name":"IGListBatchUpdateData"},"Classes/IGListBatchUpdateData.html#/c:objc(cs)IGListBatchUpdateData(py)moveSections":{"name":"moveSections","abstract":"Section moves.
","parent_name":"IGListBatchUpdateData"},"Classes/IGListBatchUpdateData.html#/c:objc(cs)IGListBatchUpdateData(py)insertIndexPaths":{"name":"insertIndexPaths","abstract":"Item insert index paths.
","parent_name":"IGListBatchUpdateData"},"Classes/IGListBatchUpdateData.html#/c:objc(cs)IGListBatchUpdateData(py)deleteIndexPaths":{"name":"deleteIndexPaths","abstract":"Item delete index paths.
","parent_name":"IGListBatchUpdateData"},"Classes/IGListBatchUpdateData.html#/c:objc(cs)IGListBatchUpdateData(py)moveIndexPaths":{"name":"moveIndexPaths","abstract":"Item moves.
","parent_name":"IGListBatchUpdateData"},"Classes/IGListBatchUpdateData.html#/c:objc(cs)IGListBatchUpdateData(im)initWithInsertSections:deleteSections:moveSections:insertIndexPaths:deleteIndexPaths:moveIndexPaths:":{"name":"-initWithInsertSections:deleteSections:moveSections:insertIndexPaths:deleteIndexPaths:moveIndexPaths:","abstract":"Creates a new batch update object with section and item operations.
","parent_name":"IGListBatchUpdateData"},"Classes/IGListAdapterUpdater.html#/c:objc(cs)IGListAdapterUpdater(py)delegate":{"name":"delegate","abstract":"The delegate that receives events with data on the performance of a transition.
","parent_name":"IGListAdapterUpdater"},"Classes/IGListAdapterUpdater.html#/c:objc(cs)IGListAdapterUpdater(py)movesAsDeletesInserts":{"name":"movesAsDeletesInserts","abstract":"A flag indicating if a move should be treated as a delete, then insert operation.
","parent_name":"IGListAdapterUpdater"},"Classes/IGListAdapterUpdater.html#/c:objc(cs)IGListAdapterUpdater(py)allowsBackgroundReloading":{"name":"allowsBackgroundReloading","abstract":"A flag indicating whether this updater should skip diffing and simply call","parent_name":"IGListAdapterUpdater"},"Classes/IGListAdapterUpdater.html#/c:objc(cs)IGListAdapterUpdater(py)experiments":{"name":"experiments","abstract":"
A bitmask of experiments to conduct on the updater.
","parent_name":"IGListAdapterUpdater"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)viewController":{"name":"viewController","abstract":"The view controller that houses the adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)collectionView":{"name":"collectionView","abstract":"The collection view used with the adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)dataSource":{"name":"dataSource","abstract":"The object that acts as the data source for the adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)delegate":{"name":"delegate","abstract":"The object that receives top-level events for section controllers.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)collectionViewDelegate":{"name":"collectionViewDelegate","abstract":"The object that receives UICollectionViewDelegate
events.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)scrollViewDelegate":{"name":"scrollViewDelegate","abstract":"The object that receives UIScrollViewDelegate
events.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)updater":{"name":"updater","abstract":"The updater for the adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)experiments":{"name":"experiments","abstract":"A bitmask of experiments to conduct on the adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)initWithUpdater:viewController:workingRangeSize:":{"name":"-initWithUpdater:viewController:workingRangeSize:","abstract":"Initializes a new IGListAdapter
object.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)initWithUpdater:viewController:":{"name":"-initWithUpdater:viewController:","abstract":"Initializes a new IGListAdapter
object with a working range of 0
.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)performUpdatesAnimated:completion:":{"name":"-performUpdatesAnimated:completion:","abstract":"Perform an update from the previous state of the data source. This is analogous to calling","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)reloadDataWithCompletion:":{"name":"-reloadDataWithCompletion:","abstract":"
Perform an immediate reload of the data in the data source, discarding the old objects.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)reloadObjects:":{"name":"-reloadObjects:","abstract":"Reload the list for only the specified objects.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)sectionControllerForSection:":{"name":"-sectionControllerForSection:","abstract":"Query the section controller at a given section index. Constant time lookup.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)sectionForSectionController:":{"name":"-sectionForSectionController:","abstract":"Query the section index of a list. Constant time lookup.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)sectionControllerForObject:":{"name":"-sectionControllerForObject:","abstract":"Returns the section controller for the specified object. Constant time lookup.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)objectForSectionController:":{"name":"-objectForSectionController:","abstract":"Returns the object corresponding to the specified section controller in the list. Constant time lookup.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)objectAtSection:":{"name":"-objectAtSection:","abstract":"Returns the object corresponding to a section in the list. Constant time lookup.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)sectionForObject:":{"name":"-sectionForObject:","abstract":"Returns the section corresponding to the specified object in the list. Constant time lookup.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)objects":{"name":"-objects","abstract":"Returns a copy of all the objects currently driving the adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)visibleSectionControllers":{"name":"-visibleSectionControllers","abstract":"An unordered array of the currently visible section controllers.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)visibleObjects":{"name":"-visibleObjects","abstract":"An unordered array of the currently visible objects.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)visibleCellsForObject:":{"name":"-visibleCellsForObject:","abstract":"An unordered array of the currently visible cells for a given object.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)scrollToObject:supplementaryKinds:scrollDirection:scrollPosition:animated:":{"name":"-scrollToObject:supplementaryKinds:scrollDirection:scrollPosition:animated:","abstract":"Scrolls to the specified object in the list adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)sizeForItemAtIndexPath:":{"name":"-sizeForItemAtIndexPath:","abstract":"Returns the size of a cell at the specified index path.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)sizeForSupplementaryViewOfKind:atIndexPath:":{"name":"-sizeForSupplementaryViewOfKind:atIndexPath:","abstract":"Returns the size of a supplementary view in the list at the specified index path.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html":{"name":"IGListAdapter","abstract":"IGListAdapter
objects provide an abstraction for feeds of objects in a UICollectionView
by breaking each object"},"Classes/IGListAdapterUpdater.html":{"name":"IGListAdapterUpdater","abstract":"
An IGListAdapterUpdater
is a concrete type that conforms to IGListUpdatingDelegate
."},"Classes/IGListBatchUpdateData.html":{"name":"IGListBatchUpdateData","abstract":"
An instance of IGListBatchUpdateData
takes section indexes and item index paths"},"Classes/IGListBindingSectionController.html":{"name":"IGListBindingSectionController","abstract":"
This section controller uses a data source to transform its top level object into an array of diffable view models."},"Classes/IGListCollectionViewLayout.html":{"name":"IGListCollectionViewLayout","abstract":"
This UICollectionViewLayout subclass is for vertically or horizontally scrolling lists of data with variable widths and"},"Classes/IGListGenericSectionController.html":{"name":"IGListGenericSectionController","abstract":"
This class adds a helper layer to IGListSectionController\u0010
to automatically store a generic object in"},"Classes/IGListIndexPathResult.html":{"name":"IGListIndexPathResult","abstract":"
A result object returned when diffing with sections.
"},"Classes/IGListIndexSetResult.html":{"name":"IGListIndexSetResult","abstract":"A result object returned when diffing with indexes.
"},"Classes/IGListMoveIndex.html":{"name":"IGListMoveIndex","abstract":"An object representing a move between indexes.
"},"Classes/IGListMoveIndexPath.html":{"name":"IGListMoveIndexPath","abstract":"An object representing a move between indexes.
"},"Classes.html#/c:objc(cs)IGListReloadDataUpdater":{"name":"IGListReloadDataUpdater","abstract":"An IGListReloadDataUpdater
is a concrete type that conforms to IGListUpdatingDelegate
."},"Classes/IGListSectionController.html":{"name":"IGListSectionController","abstract":"
The base class for section controllers used in a list. This class is intended to be subclassed.
"},"Classes/IGListSingleSectionController.html":{"name":"IGListSingleSectionController","abstract":"This section controller is meant to make building simple, single-cell lists easier. By providing the type of cell, a block"},"Classes/IGListStackedSectionController.html":{"name":"IGListStackedSectionController","abstract":"
An instance of IGListStackedSectionController
is a clustered section controller, composed of many child section"},"best-practices-and-faq.html":{"name":"Best Practices and FAQ"},"getting-started.html":{"name":"Getting Started"},"iglistdiffable-and-equality.html":{"name":"IGListDiffable and Equality"},"installation.html":{"name":"Installation"},"migration.html":{"name":"Migration"},"modeling-and-binding.html":{"name":"Modeling and Binding"},"vision.html":{"name":"VISION"},"working-with-core-data.html":{"name":"Working with Core Data"},"working-with-uicollectionview.html":{"name":"Working with UICollectionView"},"Guides.html":{"name":"Guides","abstract":"
The following guides are available globally.
"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally.
"},"Constants.html":{"name":"Constants","abstract":"The following constants are available globally.
"},"Enums.html":{"name":"Enums","abstract":"The following enums are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"},"Type Definitions.html":{"name":"Type Definitions","abstract":"The following type definitions are available globally.
"},"Functions.html":{"name":"Functions","abstract":"The following functions are available globally.
"}}
\ No newline at end of file
+{"Functions.html#/c:@F@IGListDiff":{"name":"IGListDiff","abstract":"Creates a diff using indexes between two collections.
"},"Functions.html#/c:@F@IGListDiffPaths":{"name":"IGListDiffPaths","abstract":"Creates a diff using index paths between two collections.
"},"Functions.html#/c:IGListExperiments.h@F@IGListExperimentEnabled":{"name":"IGListExperimentEnabled","abstract":"Check if an experiment is enabled in a bitmask.
"},"Functions.html#/c:@F@IGListDiffExperiment":{"name":"IGListDiffExperiment","abstract":"Performs an index diff with an experiment bitmask.
"},"Functions.html#/c:@F@IGListDiffPathsExperiment":{"name":"IGListDiffPathsExperiment","abstract":"Performs a index path diff with an experiment bitmask.
"},"Type Definitions.html#/c:IGListAdapter.h@T@IGListUpdaterCompletion":{"name":"IGListUpdaterCompletion","abstract":"A block to execute when the list updates are completed.
"},"Type Definitions.html#/c:IGListSingleSectionController.h@T@IGListSingleSectionCellConfigureBlock":{"name":"IGListSingleSectionCellConfigureBlock","abstract":"A block used to configure cells.
"},"Type Definitions.html#/c:IGListSingleSectionController.h@T@IGListSingleSectionCellSizeBlock":{"name":"IGListSingleSectionCellSizeBlock","abstract":"A block that returns the size for the cell given the collection context.
"},"Type Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListUpdatingCompletion":{"name":"IGListUpdatingCompletion","abstract":"A completion block to execute when updates are finished.
"},"Type Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListObjectTransitionBlock":{"name":"IGListObjectTransitionBlock","abstract":"A block to be called when the adapter applies changes to the collection view.
"},"Type Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListItemUpdateBlock":{"name":"IGListItemUpdateBlock","abstract":"A block that contains all of the updates.
"},"Type Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListReloadUpdateBlock":{"name":"IGListReloadUpdateBlock","abstract":"A block to be called when an adapter reloads the collection view.
"},"Protocols/IGListWorkingRangeDelegate.html#/c:objc(pl)IGListWorkingRangeDelegate(im)listAdapter:sectionControllerWillEnterWorkingRange:":{"name":"-listAdapter:sectionControllerWillEnterWorkingRange:","abstract":"Notifies the delegate that an section controller will enter the working range.
","parent_name":"IGListWorkingRangeDelegate"},"Protocols/IGListWorkingRangeDelegate.html#/c:objc(pl)IGListWorkingRangeDelegate(im)listAdapter:sectionControllerDidExitWorkingRange:":{"name":"-listAdapter:sectionControllerDidExitWorkingRange:","abstract":"Notifies the delegate that an section controller exited the working range.
","parent_name":"IGListWorkingRangeDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)objectLookupPointerFunctions":{"name":"-objectLookupPointerFunctions","abstract":"Asks the delegate for the pointer functions for looking up an object in a collection.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)performUpdateWithCollectionView:fromObjects:toObjects:animated:objectTransitionBlock:completion:":{"name":"-performUpdateWithCollectionView:fromObjects:toObjects:animated:objectTransitionBlock:completion:","abstract":"Tells the delegate to perform a section transition from an old array of objects to a new one.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)insertItemsIntoCollectionView:indexPaths:":{"name":"-insertItemsIntoCollectionView:indexPaths:","abstract":"Tells the delegate to perform item inserts at the given index paths.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)deleteItemsFromCollectionView:indexPaths:":{"name":"-deleteItemsFromCollectionView:indexPaths:","abstract":"Tells the delegate to perform item deletes at the given index paths.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)moveItemInCollectionView:fromIndexPath:toIndexPath:":{"name":"-moveItemInCollectionView:fromIndexPath:toIndexPath:","abstract":"Tells the delegate to move an item from and to given index paths.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)reloadItemInCollectionView:fromIndexPath:toIndexPath:":{"name":"-reloadItemInCollectionView:fromIndexPath:toIndexPath:","abstract":"Tells the delegate to reload an item from and to given index paths.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)reloadDataWithCollectionView:reloadUpdateBlock:completion:":{"name":"-reloadDataWithCollectionView:reloadUpdateBlock:completion:","abstract":"Completely reload data in the collection.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)reloadCollectionView:sections:":{"name":"-reloadCollectionView:sections:","abstract":"Completely reload each section in the collection view.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListUpdatingDelegate.html#/c:objc(pl)IGListUpdatingDelegate(im)performUpdateWithCollectionView:animated:itemUpdates:completion:":{"name":"-performUpdateWithCollectionView:animated:itemUpdates:completion:","abstract":"Perform an item update block in the collection view.
","parent_name":"IGListUpdatingDelegate"},"Protocols/IGListTransitionDelegate.html#/c:objc(pl)IGListTransitionDelegate(im)listAdapter:customizedInitialLayoutAttributes:sectionController:atIndex:":{"name":"-listAdapter:customizedInitialLayoutAttributes:sectionController:atIndex:","abstract":"Asks the delegate to customize and return the starting layout information for an item being inserted into the collection view.
","parent_name":"IGListTransitionDelegate"},"Protocols/IGListTransitionDelegate.html#/c:objc(pl)IGListTransitionDelegate(im)listAdapter:customizedFinalLayoutAttributes:sectionController:atIndex:":{"name":"-listAdapter:customizedFinalLayoutAttributes:sectionController:atIndex:","abstract":"Asks the delegate to customize and return the final layout information for an item that is about to be removed from the collection view.
","parent_name":"IGListTransitionDelegate"},"Protocols/IGListSupplementaryViewSource.html#/c:objc(pl)IGListSupplementaryViewSource(im)supportedElementKinds":{"name":"-supportedElementKinds","abstract":"Asks the SupplementaryViewSource for an array of supported element kinds.
","parent_name":"IGListSupplementaryViewSource"},"Protocols/IGListSupplementaryViewSource.html#/c:objc(pl)IGListSupplementaryViewSource(im)viewForSupplementaryElementOfKind:atIndex:":{"name":"-viewForSupplementaryElementOfKind:atIndex:","abstract":"Asks the SupplementaryViewSource for a configured supplementary view for the specified kind and index.
","parent_name":"IGListSupplementaryViewSource"},"Protocols/IGListSupplementaryViewSource.html#/c:objc(pl)IGListSupplementaryViewSource(im)sizeForSupplementaryViewOfKind:atIndex:":{"name":"-sizeForSupplementaryViewOfKind:atIndex:","abstract":"Asks the SupplementaryViewSource for the size of a supplementary view for the given kind and index path.
","parent_name":"IGListSupplementaryViewSource"},"Protocols/IGListSingleSectionControllerDelegate.html#/c:objc(pl)IGListSingleSectionControllerDelegate(im)didSelectSectionController:withObject:":{"name":"-didSelectSectionController:withObject:","abstract":"Tells the delegate that the section controller was selected.
","parent_name":"IGListSingleSectionControllerDelegate"},"Protocols/IGListSingleSectionControllerDelegate.html#/c:objc(pl)IGListSingleSectionControllerDelegate(im)didDeselectSectionController:withObject:":{"name":"-didDeselectSectionController:withObject:","abstract":"Tells the delegate that the section controller was deselected.
","parent_name":"IGListSingleSectionControllerDelegate"},"Protocols/IGListScrollDelegate.html#/c:objc(pl)IGListScrollDelegate(im)listAdapter:didScrollSectionController:":{"name":"-listAdapter:didScrollSectionController:","abstract":"Tells the delegate that the section controller was scrolled on screen.
","parent_name":"IGListScrollDelegate"},"Protocols/IGListScrollDelegate.html#/c:objc(pl)IGListScrollDelegate(im)listAdapter:willBeginDraggingSectionController:":{"name":"-listAdapter:willBeginDraggingSectionController:","abstract":"Tells the delegate that the section controller will be dragged on screen.
","parent_name":"IGListScrollDelegate"},"Protocols/IGListScrollDelegate.html#/c:objc(pl)IGListScrollDelegate(im)listAdapter:didEndDraggingSectionController:willDecelerate:":{"name":"-listAdapter:didEndDraggingSectionController:willDecelerate:","abstract":"Tells the delegate that the section controller did end dragging on screen.
","parent_name":"IGListScrollDelegate"},"Protocols/IGListScrollDelegate.html#/c:objc(pl)IGListScrollDelegate(im)listAdapter:didEndDeceleratingSectionController:":{"name":"-listAdapter:didEndDeceleratingSectionController:","abstract":"Tells the delegate that the section controller did end decelerating on screen.
","parent_name":"IGListScrollDelegate"},"Protocols/IGListDisplayDelegate.html#/c:objc(pl)IGListDisplayDelegate(im)listAdapter:willDisplaySectionController:":{"name":"-listAdapter:willDisplaySectionController:","abstract":"Tells the delegate that the specified section controller is about to be displayed.
","parent_name":"IGListDisplayDelegate"},"Protocols/IGListDisplayDelegate.html#/c:objc(pl)IGListDisplayDelegate(im)listAdapter:didEndDisplayingSectionController:":{"name":"-listAdapter:didEndDisplayingSectionController:","abstract":"Tells the delegate that the specified section controller is no longer being displayed.
","parent_name":"IGListDisplayDelegate"},"Protocols/IGListDisplayDelegate.html#/c:objc(pl)IGListDisplayDelegate(im)listAdapter:willDisplaySectionController:cell:atIndex:":{"name":"-listAdapter:willDisplaySectionController:cell:atIndex:","abstract":"Tells the delegate that a cell in the specified list is about to be displayed.
","parent_name":"IGListDisplayDelegate"},"Protocols/IGListDisplayDelegate.html#/c:objc(pl)IGListDisplayDelegate(im)listAdapter:didEndDisplayingSectionController:cell:atIndex:":{"name":"-listAdapter:didEndDisplayingSectionController:cell:atIndex:","abstract":"Tells the delegate that a cell in the specified list is no longer being displayed.
","parent_name":"IGListDisplayDelegate"},"Protocols/IGListDiffable.html#/c:objc(pl)IGListDiffable(im)diffIdentifier":{"name":"-diffIdentifier","abstract":"Returns a key that uniquely identifies the object.
","parent_name":"IGListDiffable"},"Protocols/IGListDiffable.html#/c:objc(pl)IGListDiffable(im)isEqualToDiffableObject:":{"name":"-isEqualToDiffableObject:","abstract":"Returns whether the receiver and a given object are equal.
","parent_name":"IGListDiffable"},"Protocols/IGListCollectionViewDelegateLayout.html#/c:objc(pl)IGListCollectionViewDelegateLayout(im)collectionView:layout:customizedInitialLayoutAttributes:atIndexPath:":{"name":"-collectionView:layout:customizedInitialLayoutAttributes:atIndexPath:","abstract":"Asks the delegate to customize and return the starting layout information for an item being inserted into the collection view.
","parent_name":"IGListCollectionViewDelegateLayout"},"Protocols/IGListCollectionViewDelegateLayout.html#/c:objc(pl)IGListCollectionViewDelegateLayout(im)collectionView:layout:customizedFinalLayoutAttributes:atIndexPath:":{"name":"-collectionView:layout:customizedFinalLayoutAttributes:atIndexPath:","abstract":"Asks the delegate to customize and return the final layout information for an item that is about to be removed from the collection view.
","parent_name":"IGListCollectionViewDelegateLayout"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(py)containerSize":{"name":"containerSize","abstract":"The size of the collection view. You can use this for sizing cells.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(py)containerInset":{"name":"containerInset","abstract":"The content insets of the collection view. You can use this for sizing cells.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(py)adjustedContainerInset":{"name":"adjustedContainerInset","abstract":"The adjusted content insets of the collection view. Equivalent to containerInset under iOS 11.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(py)insetContainerSize":{"name":"insetContainerSize","abstract":"The size of the collection view with content insets applied.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)containerSizeForSectionController:":{"name":"-containerSizeForSectionController:","abstract":"Returns size of the collection view relative to the section controller.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)indexForCell:sectionController:":{"name":"-indexForCell:sectionController:","abstract":"Returns the index of the specified cell in the collection relative to the section controller.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)cellForItemAtIndex:sectionController:":{"name":"-cellForItemAtIndex:sectionController:","abstract":"Returns the cell in the collection at the specified index for the section controller.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)visibleCellsForSectionController:":{"name":"-visibleCellsForSectionController:","abstract":"Returns the visible cells for the given section controller.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)visibleIndexPathsForSectionController:":{"name":"-visibleIndexPathsForSectionController:","abstract":"Returns the visible paths for the given section controller.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)deselectItemAtIndex:sectionController:animated:":{"name":"-deselectItemAtIndex:sectionController:animated:","abstract":"Deselects a cell in the collection.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)selectItemAtIndex:sectionController:animated:scrollPosition:":{"name":"-selectItemAtIndex:sectionController:animated:scrollPosition:","abstract":"Selects a cell in the collection.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)dequeueReusableCellOfClass:forSectionController:atIndex:":{"name":"-dequeueReusableCellOfClass:forSectionController:atIndex:","abstract":"Dequeues a cell from the collection view reuse pool.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)dequeueReusableCellWithNibName:bundle:forSectionController:atIndex:":{"name":"-dequeueReusableCellWithNibName:bundle:forSectionController:atIndex:","abstract":"Dequeues a cell from the collection view reuse pool.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)dequeueReusableCellFromStoryboardWithIdentifier:forSectionController:atIndex:":{"name":"-dequeueReusableCellFromStoryboardWithIdentifier:forSectionController:atIndex:","abstract":"Dequeues a storyboard prototype cell from the collection view reuse pool.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)dequeueReusableSupplementaryViewOfKind:forSectionController:class:atIndex:":{"name":"-dequeueReusableSupplementaryViewOfKind:forSectionController:class:atIndex:","abstract":"Dequeues a supplementary view from the collection view reuse pool.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)dequeueReusableSupplementaryViewFromStoryboardOfKind:withIdentifier:forSectionController:atIndex:":{"name":"-dequeueReusableSupplementaryViewFromStoryboardOfKind:withIdentifier:forSectionController:atIndex:","abstract":"Dequeues a supplementary view from the collection view reuse pool.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)dequeueReusableSupplementaryViewOfKind:forSectionController:nibName:bundle:atIndex:":{"name":"-dequeueReusableSupplementaryViewOfKind:forSectionController:nibName:bundle:atIndex:","abstract":"Dequeues a supplementary view from the collection view reuse pool.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)invalidateLayoutForSectionController:completion:":{"name":"-invalidateLayoutForSectionController:completion:","abstract":"Invalidate the backing UICollectionViewLayout
for all items in the section controller.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)performBatchAnimated:updates:completion:":{"name":"-performBatchAnimated:updates:completion:","abstract":"Batches and performs many cell-level updates in a single transaction.
","parent_name":"IGListCollectionContext"},"Protocols/IGListCollectionContext.html#/c:objc(pl)IGListCollectionContext(im)scrollToSectionController:atIndex:scrollPosition:animated:":{"name":"-scrollToSectionController:atIndex:scrollPosition:animated:","abstract":"Scrolls to the specified section controller in the list.
","parent_name":"IGListCollectionContext"},"Protocols/IGListBindingSectionControllerSelectionDelegate.html#/c:objc(pl)IGListBindingSectionControllerSelectionDelegate(im)sectionController:didSelectItemAtIndex:viewModel:":{"name":"-sectionController:didSelectItemAtIndex:viewModel:","abstract":"Tells the delegate that a cell at a given index was selected.
","parent_name":"IGListBindingSectionControllerSelectionDelegate"},"Protocols/IGListBindingSectionControllerSelectionDelegate.html#/c:objc(pl)IGListBindingSectionControllerSelectionDelegate(im)sectionController:didDeselectItemAtIndex:viewModel:":{"name":"-sectionController:didDeselectItemAtIndex:viewModel:","abstract":"Tells the delegate that a cell at a given index was deselected.
","parent_name":"IGListBindingSectionControllerSelectionDelegate"},"Protocols/IGListBindingSectionControllerSelectionDelegate.html#/c:objc(pl)IGListBindingSectionControllerSelectionDelegate(im)sectionController:didHighlightItemAtIndex:viewModel:":{"name":"-sectionController:didHighlightItemAtIndex:viewModel:","abstract":"Tells the delegate that a cell at a given index was highlighted.
","parent_name":"IGListBindingSectionControllerSelectionDelegate"},"Protocols/IGListBindingSectionControllerSelectionDelegate.html#/c:objc(pl)IGListBindingSectionControllerSelectionDelegate(im)sectionController:didUnhighlightItemAtIndex:viewModel:":{"name":"-sectionController:didUnhighlightItemAtIndex:viewModel:","abstract":"Tells the delegate that a cell at a given index was unhighlighted.
","parent_name":"IGListBindingSectionControllerSelectionDelegate"},"Protocols/IGListBindingSectionControllerDataSource.html#/c:objc(pl)IGListBindingSectionControllerDataSource(im)sectionController:viewModelsForObject:":{"name":"-sectionController:viewModelsForObject:","abstract":"Create an array of view models given a top-level object.
","parent_name":"IGListBindingSectionControllerDataSource"},"Protocols/IGListBindingSectionControllerDataSource.html#/c:objc(pl)IGListBindingSectionControllerDataSource(im)sectionController:cellForViewModel:atIndex:":{"name":"-sectionController:cellForViewModel:atIndex:","abstract":"Return a dequeued cell for a given view model.
","parent_name":"IGListBindingSectionControllerDataSource"},"Protocols/IGListBindingSectionControllerDataSource.html#/c:objc(pl)IGListBindingSectionControllerDataSource(im)sectionController:sizeForViewModel:atIndex:":{"name":"-sectionController:sizeForViewModel:atIndex:","abstract":"Return a cell size for a given view model.
","parent_name":"IGListBindingSectionControllerDataSource"},"Protocols/IGListBindable.html#/c:objc(pl)IGListBindable(im)bindViewModel:":{"name":"-bindViewModel:","abstract":"Tells the cell to configure itself with the given view model.
","parent_name":"IGListBindable"},"Protocols/IGListBatchContext.html#/c:objc(pl)IGListBatchContext(im)reloadInSectionController:atIndexes:":{"name":"-reloadInSectionController:atIndexes:","abstract":"Reloads cells in the section controller.
","parent_name":"IGListBatchContext"},"Protocols/IGListBatchContext.html#/c:objc(pl)IGListBatchContext(im)insertInSectionController:atIndexes:":{"name":"-insertInSectionController:atIndexes:","abstract":"Inserts cells in the list.
","parent_name":"IGListBatchContext"},"Protocols/IGListBatchContext.html#/c:objc(pl)IGListBatchContext(im)deleteInSectionController:atIndexes:":{"name":"-deleteInSectionController:atIndexes:","abstract":"Deletes cells in the list.
","parent_name":"IGListBatchContext"},"Protocols/IGListBatchContext.html#/c:objc(pl)IGListBatchContext(im)moveInSectionController:fromIndex:toIndex:":{"name":"-moveInSectionController:fromIndex:toIndex:","abstract":"Moves a cell from one index to another within the section controller.
","parent_name":"IGListBatchContext"},"Protocols/IGListBatchContext.html#/c:objc(pl)IGListBatchContext(im)reloadSectionController:":{"name":"-reloadSectionController:","abstract":"Reloads the entire section controller.
","parent_name":"IGListBatchContext"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willPerformBatchUpdatesWithCollectionView:":{"name":"-listAdapterUpdater:willPerformBatchUpdatesWithCollectionView:","abstract":"Notifies the delegate that the updater will call -[UICollectionView performBatchUpdates:completion:]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:didPerformBatchUpdates:collectionView:":{"name":"-listAdapterUpdater:didPerformBatchUpdates:collectionView:","abstract":"Notifies the delegate that the updater successfully finished -[UICollectionView performBatchUpdates:completion:]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willInsertIndexPaths:collectionView:":{"name":"-listAdapterUpdater:willInsertIndexPaths:collectionView:","abstract":"Notifies the delegate that the updater will call -[UICollectionView insertItemsAtIndexPaths:]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willDeleteIndexPaths:collectionView:":{"name":"-listAdapterUpdater:willDeleteIndexPaths:collectionView:","abstract":"Notifies the delegate that the updater will call -[UICollectionView deleteItemsAtIndexPaths:]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willMoveFromIndexPath:toIndexPath:collectionView:":{"name":"-listAdapterUpdater:willMoveFromIndexPath:toIndexPath:collectionView:","abstract":"Notifies the delegate that the updater will call -[UICollectionView moveItemAtIndexPath:toIndexPath:]
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willReloadIndexPaths:collectionView:":{"name":"-listAdapterUpdater:willReloadIndexPaths:collectionView:","abstract":"Notifies the delegate that the updater will call -[UICollectionView reloadItemsAtIndexPaths:]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willReloadSections:collectionView:":{"name":"-listAdapterUpdater:willReloadSections:collectionView:","abstract":"Notifies the delegate that the updater will call -[UICollectionView reloadSections:]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:willReloadDataWithCollectionView:":{"name":"-listAdapterUpdater:willReloadDataWithCollectionView:","abstract":"Notifies the delegate that the updater will call -[UICollectionView reloadData]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:didReloadDataWithCollectionView:":{"name":"-listAdapterUpdater:didReloadDataWithCollectionView:","abstract":"Notifies the delegate that the updater successfully called -[UICollectionView reloadData]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdaterDelegate.html#/c:objc(pl)IGListAdapterUpdaterDelegate(im)listAdapterUpdater:collectionView:willCrashWithException:fromObjects:toObjects:updates:":{"name":"-listAdapterUpdater:collectionView:willCrashWithException:fromObjects:toObjects:updates:","abstract":"Notifies the delegate that the collection view threw an exception in -[UICollectionView performBatchUpdates:completion:]
.
","parent_name":"IGListAdapterUpdaterDelegate"},"Protocols/IGListAdapterUpdateListener.html#/c:objc(pl)IGListAdapterUpdateListener(im)listAdapter:didFinishUpdate:animated:":{"name":"-listAdapter:didFinishUpdate:animated:","abstract":"Notifies a listener that the listAdapter was updated.
","parent_name":"IGListAdapterUpdateListener"},"Protocols/IGListAdapterDelegate.html#/c:objc(pl)IGListAdapterDelegate(im)listAdapter:willDisplayObject:atIndex:":{"name":"-listAdapter:willDisplayObject:atIndex:","abstract":"Notifies the delegate that a list object is about to be displayed.
","parent_name":"IGListAdapterDelegate"},"Protocols/IGListAdapterDelegate.html#/c:objc(pl)IGListAdapterDelegate(im)listAdapter:didEndDisplayingObject:atIndex:":{"name":"-listAdapter:didEndDisplayingObject:atIndex:","abstract":"Notifies the delegate that a list object is no longer being displayed.
","parent_name":"IGListAdapterDelegate"},"Protocols/IGListAdapterDataSource.html#/c:objc(pl)IGListAdapterDataSource(im)objectsForListAdapter:":{"name":"-objectsForListAdapter:","abstract":"Asks the data source for the objects to display in the list.
","parent_name":"IGListAdapterDataSource"},"Protocols/IGListAdapterDataSource.html#/c:objc(pl)IGListAdapterDataSource(im)listAdapter:sectionControllerForObject:":{"name":"-listAdapter:sectionControllerForObject:","abstract":"Asks the data source for a section controller for the specified object in the list.
","parent_name":"IGListAdapterDataSource"},"Protocols/IGListAdapterDataSource.html#/c:objc(pl)IGListAdapterDataSource(im)emptyViewForListAdapter:":{"name":"-emptyViewForListAdapter:","abstract":"Asks the data source for a view to use as the collection view background when the list is empty.
","parent_name":"IGListAdapterDataSource"},"Protocols/IGListAdapterDataSource.html":{"name":"IGListAdapterDataSource","abstract":"Implement this protocol to provide data to an IGListAdapter
.
"},"Protocols/IGListAdapterDelegate.html":{"name":"IGListAdapterDelegate","abstract":"Conform to IGListAdapterDelegate
to receive display events for objects in a list.
"},"Protocols/IGListAdapterUpdateListener.html":{"name":"IGListAdapterUpdateListener","abstract":"Conform to this protocol to receive events about IGListAdapter
updates.
"},"Protocols/IGListAdapterUpdaterDelegate.html":{"name":"IGListAdapterUpdaterDelegate","abstract":"A protocol that receives events about IGListAdapterUpdater
operations.
"},"Protocols/IGListBatchContext.html":{"name":"IGListBatchContext","abstract":"Objects conforming to the IGListBatchContext protocol provide a way for section controllers to mutate their cells or"},"Protocols/IGListBindable.html":{"name":"IGListBindable","abstract":"
A protocol for cells that configure themselves given a view model.
"},"Protocols/IGListBindingSectionControllerDataSource.html":{"name":"IGListBindingSectionControllerDataSource","abstract":"A protocol that returns data to power cells in an IGListBindingSectionController
.
"},"Protocols/IGListBindingSectionControllerSelectionDelegate.html":{"name":"IGListBindingSectionControllerSelectionDelegate","abstract":"A protocol that handles cell selection events in an IGListBindingSectionController
.
"},"Protocols/IGListCollectionContext.html":{"name":"IGListCollectionContext","abstract":"The collection context provides limited access to the collection-related information that"},"Protocols/IGListCollectionViewDelegateLayout.html":{"name":"IGListCollectionViewDelegateLayout","abstract":"
Conform to IGListCollectionViewDelegateLayout
to provide customized layout information for a collection view.
"},"Protocols/IGListDiffable.html":{"name":"IGListDiffable","abstract":"The IGListDiffable
protocol provides methods needed to compare the identity and equality of two objects.
"},"Protocols/IGListDisplayDelegate.html":{"name":"IGListDisplayDelegate","abstract":"Implement this protocol to receive display events for a section controller when it is on screen.
"},"Protocols/IGListScrollDelegate.html":{"name":"IGListScrollDelegate","abstract":"Implement this protocol to receive display events for a section controller when it is on screen.
"},"Protocols/IGListSingleSectionControllerDelegate.html":{"name":"IGListSingleSectionControllerDelegate","abstract":"A delegate that can receive selection events on an IGListSingleSectionController
.
"},"Protocols/IGListSupplementaryViewSource.html":{"name":"IGListSupplementaryViewSource","abstract":"Conform to this protocol to provide information about a list’s supplementary views. This data is used in"},"Protocols/IGListTransitionDelegate.html":{"name":"IGListTransitionDelegate","abstract":"
Conform to IGListTransitionDelegate
to provide customized layout information for a collection view.
"},"Protocols/IGListUpdatingDelegate.html":{"name":"IGListUpdatingDelegate","abstract":"Implement this protocol in order to handle both section and row based update events. Implementation should forward or"},"Protocols/IGListWorkingRangeDelegate.html":{"name":"IGListWorkingRangeDelegate","abstract":"
Implement this protocol to receive working range events for a list.
"},"Enums/IGListExperiment.html#/c:@E@IGListExperiment@IGListExperimentNone":{"name":"IGListExperimentNone","abstract":"Specifies no experiments.
","parent_name":"IGListExperiment"},"Enums/IGListExperiment.html#/c:@E@IGListExperiment@IGListExperimentBackgroundDiffing":{"name":"IGListExperimentBackgroundDiffing","abstract":"Test updater diffing performed on a background queue.
","parent_name":"IGListExperiment"},"Enums/IGListExperiment.html#/c:@E@IGListExperiment@IGListExperimentReloadDataFallback":{"name":"IGListExperimentReloadDataFallback","abstract":"Test fallback to reloadData when too many update operations.
","parent_name":"IGListExperiment"},"Enums/IGListExperiment.html#/c:@E@IGListExperiment@IGListExperimentFasterVisibleSectionController":{"name":"IGListExperimentFasterVisibleSectionController","abstract":"Test a faster way to return visible section controllers.
","parent_name":"IGListExperiment"},"Enums/IGListExperiment.html#/c:@E@IGListExperiment@IGListExperimentDedupeItemUpdates":{"name":"IGListExperimentDedupeItemUpdates","abstract":"Test deduping item-level updates.
","parent_name":"IGListExperiment"},"Enums/IGListDiffOption.html#/c:@E@IGListDiffOption@IGListDiffPointerPersonality":{"name":"IGListDiffPointerPersonality","abstract":"Compare objects using pointer personality.
","parent_name":"IGListDiffOption"},"Enums/IGListDiffOption.html#/c:@E@IGListDiffOption@IGListDiffEquality":{"name":"IGListDiffEquality","abstract":"Compare objects using -[IGListDiffable isEqualToDiffableObject:]
.
","parent_name":"IGListDiffOption"},"Enums/IGListAdapterUpdateType.html#/c:@E@IGListAdapterUpdateType@IGListAdapterUpdateTypePerformUpdates":{"name":"IGListAdapterUpdateTypePerformUpdates","abstract":"-[IGListAdapter performUpdatesAnimated:completion:]
was executed.
","parent_name":"IGListAdapterUpdateType"},"Enums/IGListAdapterUpdateType.html#/c:@E@IGListAdapterUpdateType@IGListAdapterUpdateTypeReloadData":{"name":"IGListAdapterUpdateTypeReloadData","abstract":"-[IGListAdapter reloadDataWithCompletion:]
was executed.
","parent_name":"IGListAdapterUpdateType"},"Enums/IGListAdapterUpdateType.html#/c:@E@IGListAdapterUpdateType@IGListAdapterUpdateTypeItemUpdates":{"name":"IGListAdapterUpdateTypeItemUpdates","abstract":"-[IGListCollectionContext performBatchAnimated:updates:completion:]
was executed by an IGListSectionController
.
","parent_name":"IGListAdapterUpdateType"},"Enums/IGListAdapterUpdateType.html":{"name":"IGListAdapterUpdateType","abstract":"The type of update that was performed by an IGListAdapter
.
"},"Enums/IGListDiffOption.html":{"name":"IGListDiffOption","abstract":"An option for how to do comparisons between similar objects.
"},"Enums/IGListExperiment.html":{"name":"IGListExperiment","abstract":"Bitmask-able options used for pre-release feature testing.
"},"Constants.html#/c:@IGListKitVersionNumber":{"name":"IGListKitVersionNumber","abstract":"Project version number for IGListKit.
"},"Constants.html#/c:@IGListKitVersionString":{"name":"IGListKitVersionString","abstract":"Project version string for IGListKit.
"},"Classes/IGListStackedSectionController.html#/c:objc(cs)IGListStackedSectionController(im)initWithSectionControllers:":{"name":"-initWithSectionControllers:","abstract":"Creates a new stacked section controller.
","parent_name":"IGListStackedSectionController"},"Classes/IGListSingleSectionController.html#/c:objc(cs)IGListSingleSectionController(im)initWithCellClass:configureBlock:sizeBlock:":{"name":"-initWithCellClass:configureBlock:sizeBlock:","abstract":"Creates a new section controller for a given cell type that will always have only one cell when present in a list.
","parent_name":"IGListSingleSectionController"},"Classes/IGListSingleSectionController.html#/c:objc(cs)IGListSingleSectionController(im)initWithNibName:bundle:configureBlock:sizeBlock:":{"name":"-initWithNibName:bundle:configureBlock:sizeBlock:","abstract":"Creates a new section controller for a given nib name and bundle that will always have only one cell when present in a list.
","parent_name":"IGListSingleSectionController"},"Classes/IGListSingleSectionController.html#/c:objc(cs)IGListSingleSectionController(im)initWithStoryboardCellIdentifier:configureBlock:sizeBlock:":{"name":"-initWithStoryboardCellIdentifier:configureBlock:sizeBlock:","abstract":"Creates a new section controller for a given storyboard cell identifier that will always have only one cell when present in a list.
","parent_name":"IGListSingleSectionController"},"Classes/IGListSingleSectionController.html#/c:objc(cs)IGListSingleSectionController(py)selectionDelegate":{"name":"selectionDelegate","abstract":"An optional delegate that handles selection and deselection.
","parent_name":"IGListSingleSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(im)numberOfItems":{"name":"-numberOfItems","abstract":"Returns the number of items in the section.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(im)sizeForItemAtIndex:":{"name":"-sizeForItemAtIndex:","abstract":"The specific size for the item at the specified index.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(im)cellForItemAtIndex:":{"name":"-cellForItemAtIndex:","abstract":"Return a dequeued cell for a given index.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(im)didUpdateToObject:":{"name":"-didUpdateToObject:","abstract":"Updates the section controller to a new object.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(im)didSelectItemAtIndex:":{"name":"-didSelectItemAtIndex:","abstract":"Tells the section controller that the cell at the specified index path was selected.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(im)didDeselectItemAtIndex:":{"name":"-didDeselectItemAtIndex:","abstract":"Tells the section controller that the cell at the specified index path was deselected.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(im)didHighlightItemAtIndex:":{"name":"-didHighlightItemAtIndex:","abstract":"Tells the section controller that the cell at the specified index path was highlighted.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(im)didUnhighlightItemAtIndex:":{"name":"-didUnhighlightItemAtIndex:","abstract":"Tells the section controller that the cell at the specified index path was unhighlighted.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)viewController":{"name":"viewController","abstract":"The view controller housing the adapter that created this section controller.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)collectionContext":{"name":"collectionContext","abstract":"A context object for interacting with the collection.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)section":{"name":"section","abstract":"Returns the section within the list for this section controller.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)isFirstSection":{"name":"isFirstSection","abstract":"Returns YES
if the section controller is the first section in the list, NO
otherwise.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)isLastSection":{"name":"isLastSection","abstract":"Returns YES
if the section controller is the last section in the list, NO
otherwise.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)inset":{"name":"inset","abstract":"The margins used to lay out content in the section controller.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)minimumLineSpacing":{"name":"minimumLineSpacing","abstract":"The minimum spacing to use between rows of items.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)minimumInteritemSpacing":{"name":"minimumInteritemSpacing","abstract":"The minimum spacing to use between items in the same row.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)supplementaryViewSource":{"name":"supplementaryViewSource","abstract":"The supplementary view source for the section controller. Can be nil
.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)displayDelegate":{"name":"displayDelegate","abstract":"An object that handles display events for the section controller. Can be nil
.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)workingRangeDelegate":{"name":"workingRangeDelegate","abstract":"An object that handles working range events for the section controller. Can be nil
.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)scrollDelegate":{"name":"scrollDelegate","abstract":"An object that handles scroll events for the section controller. Can be nil
.
","parent_name":"IGListSectionController"},"Classes/IGListSectionController.html#/c:objc(cs)IGListSectionController(py)transitionDelegate":{"name":"transitionDelegate","abstract":"An object that handles transition events for the section controller. Can be nil
.
","parent_name":"IGListSectionController"},"Classes/IGListMoveIndexPath.html#/c:objc(cs)IGListMoveIndexPath(py)from":{"name":"from","abstract":"An index path in the old collection.
","parent_name":"IGListMoveIndexPath"},"Classes/IGListMoveIndexPath.html#/c:objc(cs)IGListMoveIndexPath(py)to":{"name":"to","abstract":"An index path in the new collection.
","parent_name":"IGListMoveIndexPath"},"Classes/IGListMoveIndex.html#/c:objc(cs)IGListMoveIndex(py)from":{"name":"from","abstract":"An index in the old collection.
","parent_name":"IGListMoveIndex"},"Classes/IGListMoveIndex.html#/c:objc(cs)IGListMoveIndex(py)to":{"name":"to","abstract":"An index in the new collection.
","parent_name":"IGListMoveIndex"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(py)inserts":{"name":"inserts","abstract":"The indexes inserted into the new collection.
","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(py)deletes":{"name":"deletes","abstract":"The indexes deleted from the old collection.
","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(py)updates":{"name":"updates","abstract":"The indexes in the old collection that need updated.
","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(py)moves":{"name":"moves","abstract":"The moves from an index in the old collection to an index in the new collection.
","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(py)hasChanges":{"name":"hasChanges","abstract":"A Read-only boolean that indicates whether the result has any changes or not.","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(im)oldIndexForIdentifier:":{"name":"-oldIndexForIdentifier:","abstract":"
Returns the index of the object with the specified identifier before the diff.
","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(im)newIndexForIdentifier:":{"name":"-newIndexForIdentifier:","abstract":"Returns the index of the object with the specified identifier after the diff.
","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexSetResult.html#/c:objc(cs)IGListIndexSetResult(im)resultForBatchUpdates":{"name":"-resultForBatchUpdates","abstract":"Creates a new result object with operations safe for use in UITableView
and UICollectionView
batch updates.
","parent_name":"IGListIndexSetResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(py)inserts":{"name":"inserts","abstract":"The index paths inserted into the new collection.
","parent_name":"IGListIndexPathResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(py)deletes":{"name":"deletes","abstract":"The index paths deleted from the old collection.
","parent_name":"IGListIndexPathResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(py)updates":{"name":"updates","abstract":"The index paths in the old collection that need updated.
","parent_name":"IGListIndexPathResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(py)moves":{"name":"moves","abstract":"The moves from an index path in the old collection to an index path in the new collection.
","parent_name":"IGListIndexPathResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(py)hasChanges":{"name":"hasChanges","abstract":"A Read-only boolean that indicates whether the result has any changes or not.","parent_name":"IGListIndexPathResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(im)oldIndexPathForIdentifier:":{"name":"-oldIndexPathForIdentifier:","abstract":"
Returns the index path of the object with the specified identifier before the diff.
","parent_name":"IGListIndexPathResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(im)newIndexPathForIdentifier:":{"name":"-newIndexPathForIdentifier:","abstract":"Returns the index path of the object with the specified identifier after the diff.
","parent_name":"IGListIndexPathResult"},"Classes/IGListIndexPathResult.html#/c:objc(cs)IGListIndexPathResult(im)resultForBatchUpdates":{"name":"-resultForBatchUpdates","abstract":"Creates a new result object with operations safe for use in UITableView
and UICollectionView
batch updates.
","parent_name":"IGListIndexPathResult"},"Classes/IGListGenericSectionController.html#/c:objc(cs)IGListGenericSectionController(py)object":{"name":"object","abstract":"The object mapped to this section controller. Matches the object provided in","parent_name":"IGListGenericSectionController"},"Classes/IGListGenericSectionController.html#/c:objc(cs)IGListGenericSectionController(im)didUpdateToObject:":{"name":"-didUpdateToObject:","abstract":"
Updates the section controller to a new object.
","parent_name":"IGListGenericSectionController"},"Classes/IGListCollectionViewLayout.html#/c:objc(cs)IGListCollectionViewLayout(py)scrollDirection":{"name":"scrollDirection","abstract":"Direction in which layout will be scrollable; items will be flowed in the perpendicular direction, newlining when they","parent_name":"IGListCollectionViewLayout"},"Classes/IGListCollectionViewLayout.html#/c:objc(cs)IGListCollectionViewLayout(py)stickyHeaderYOffset":{"name":"stickyHeaderYOffset","abstract":"
Set this to adjust the offset of the sticky headers in the scrolling direction. Can be used to change the sticky","parent_name":"IGListCollectionViewLayout"},"Classes/IGListCollectionViewLayout.html#/c:objc(cs)IGListCollectionViewLayout(im)didModifySection:":{"name":"-didModifySection:","abstract":"
Notify the layout that a specific section was modified before invalidation. Used to optimize layout re-calculation.
","parent_name":"IGListCollectionViewLayout"},"Classes/IGListCollectionViewLayout.html#/c:objc(cs)IGListCollectionViewLayout(im)initWithStickyHeaders:scrollDirection:topContentInset:stretchToEdge:":{"name":"-initWithStickyHeaders:scrollDirection:topContentInset:stretchToEdge:","abstract":"Create and return a new collection view layout.
","parent_name":"IGListCollectionViewLayout"},"Classes/IGListCollectionViewLayout.html#/c:objc(cs)IGListCollectionViewLayout(im)initWithStickyHeaders:topContentInset:stretchToEdge:":{"name":"-initWithStickyHeaders:topContentInset:stretchToEdge:","abstract":"Create and return a new vertically scrolling collection view layout.
","parent_name":"IGListCollectionViewLayout"},"Classes/IGListCollectionView.html#/c:objc(cs)IGListCollectionView(im)initWithFrame:listCollectionViewLayout:":{"name":"-initWithFrame:listCollectionViewLayout:","abstract":"Create a new view with an IGListcollectionViewLayout
class or subclass.
","parent_name":"IGListCollectionView"},"Classes/IGListBindingSectionController.html#/c:objc(cs)IGListBindingSectionController(py)dataSource":{"name":"dataSource","abstract":"A data source that transforms a top-level object into view models, and returns cells and sizes for given view models.
","parent_name":"IGListBindingSectionController"},"Classes/IGListBindingSectionController.html#/c:objc(cs)IGListBindingSectionController(py)selectionDelegate":{"name":"selectionDelegate","abstract":"A delegate that receives selection events from cells in an IGListBindingSectionController
instance.
","parent_name":"IGListBindingSectionController"},"Classes/IGListBindingSectionController.html#/c:objc(cs)IGListBindingSectionController(py)object":{"name":"object","abstract":"The object currently assigned to the section controller, if any.
","parent_name":"IGListBindingSectionController"},"Classes/IGListBindingSectionController.html#/c:objc(cs)IGListBindingSectionController(py)viewModels":{"name":"viewModels","abstract":"The array of view models created from the data source. Values are changed when the top-level object changes or by","parent_name":"IGListBindingSectionController"},"Classes/IGListBindingSectionController.html#/c:objc(cs)IGListBindingSectionController(im)updateAnimated:completion:":{"name":"-updateAnimated:completion:","abstract":"
Tells the section controller to query for new view models, diff the changes, and update its cells.
","parent_name":"IGListBindingSectionController"},"Classes/IGListBatchUpdateData.html#/c:objc(cs)IGListBatchUpdateData(py)insertSections":{"name":"insertSections","abstract":"Section insert indexes.
","parent_name":"IGListBatchUpdateData"},"Classes/IGListBatchUpdateData.html#/c:objc(cs)IGListBatchUpdateData(py)deleteSections":{"name":"deleteSections","abstract":"Section delete indexes.
","parent_name":"IGListBatchUpdateData"},"Classes/IGListBatchUpdateData.html#/c:objc(cs)IGListBatchUpdateData(py)moveSections":{"name":"moveSections","abstract":"Section moves.
","parent_name":"IGListBatchUpdateData"},"Classes/IGListBatchUpdateData.html#/c:objc(cs)IGListBatchUpdateData(py)insertIndexPaths":{"name":"insertIndexPaths","abstract":"Item insert index paths.
","parent_name":"IGListBatchUpdateData"},"Classes/IGListBatchUpdateData.html#/c:objc(cs)IGListBatchUpdateData(py)deleteIndexPaths":{"name":"deleteIndexPaths","abstract":"Item delete index paths.
","parent_name":"IGListBatchUpdateData"},"Classes/IGListBatchUpdateData.html#/c:objc(cs)IGListBatchUpdateData(py)moveIndexPaths":{"name":"moveIndexPaths","abstract":"Item moves.
","parent_name":"IGListBatchUpdateData"},"Classes/IGListBatchUpdateData.html#/c:objc(cs)IGListBatchUpdateData(im)initWithInsertSections:deleteSections:moveSections:insertIndexPaths:deleteIndexPaths:moveIndexPaths:":{"name":"-initWithInsertSections:deleteSections:moveSections:insertIndexPaths:deleteIndexPaths:moveIndexPaths:","abstract":"Creates a new batch update object with section and item operations.
","parent_name":"IGListBatchUpdateData"},"Classes/IGListAdapterUpdater.html#/c:objc(cs)IGListAdapterUpdater(py)delegate":{"name":"delegate","abstract":"The delegate that receives events with data on the performance of a transition.
","parent_name":"IGListAdapterUpdater"},"Classes/IGListAdapterUpdater.html#/c:objc(cs)IGListAdapterUpdater(py)movesAsDeletesInserts":{"name":"movesAsDeletesInserts","abstract":"A flag indicating if a move should be treated as a delete, then insert operation.
","parent_name":"IGListAdapterUpdater"},"Classes/IGListAdapterUpdater.html#/c:objc(cs)IGListAdapterUpdater(py)allowsBackgroundReloading":{"name":"allowsBackgroundReloading","abstract":"A flag indicating whether this updater should skip diffing and simply call","parent_name":"IGListAdapterUpdater"},"Classes/IGListAdapterUpdater.html#/c:objc(cs)IGListAdapterUpdater(py)experiments":{"name":"experiments","abstract":"
A bitmask of experiments to conduct on the updater.
","parent_name":"IGListAdapterUpdater"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)viewController":{"name":"viewController","abstract":"The view controller that houses the adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)collectionView":{"name":"collectionView","abstract":"The collection view used with the adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)dataSource":{"name":"dataSource","abstract":"The object that acts as the data source for the adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)delegate":{"name":"delegate","abstract":"The object that receives top-level events for section controllers.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)collectionViewDelegate":{"name":"collectionViewDelegate","abstract":"The object that receives UICollectionViewDelegate
events.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)scrollViewDelegate":{"name":"scrollViewDelegate","abstract":"The object that receives UIScrollViewDelegate
events.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)updater":{"name":"updater","abstract":"The updater for the adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(py)experiments":{"name":"experiments","abstract":"A bitmask of experiments to conduct on the adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)initWithUpdater:viewController:workingRangeSize:":{"name":"-initWithUpdater:viewController:workingRangeSize:","abstract":"Initializes a new IGListAdapter
object.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)initWithUpdater:viewController:":{"name":"-initWithUpdater:viewController:","abstract":"Initializes a new IGListAdapter
object with a working range of 0
.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)performUpdatesAnimated:completion:":{"name":"-performUpdatesAnimated:completion:","abstract":"Perform an update from the previous state of the data source. This is analogous to calling","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)reloadDataWithCompletion:":{"name":"-reloadDataWithCompletion:","abstract":"
Perform an immediate reload of the data in the data source, discarding the old objects.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)reloadObjects:":{"name":"-reloadObjects:","abstract":"Reload the list for only the specified objects.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)sectionControllerForSection:":{"name":"-sectionControllerForSection:","abstract":"Query the section controller at a given section index. Constant time lookup.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)sectionForSectionController:":{"name":"-sectionForSectionController:","abstract":"Query the section index of a list. Constant time lookup.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)sectionControllerForObject:":{"name":"-sectionControllerForObject:","abstract":"Returns the section controller for the specified object. Constant time lookup.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)objectForSectionController:":{"name":"-objectForSectionController:","abstract":"Returns the object corresponding to the specified section controller in the list. Constant time lookup.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)objectAtSection:":{"name":"-objectAtSection:","abstract":"Returns the object corresponding to a section in the list. Constant time lookup.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)sectionForObject:":{"name":"-sectionForObject:","abstract":"Returns the section corresponding to the specified object in the list. Constant time lookup.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)objects":{"name":"-objects","abstract":"Returns a copy of all the objects currently driving the adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)visibleSectionControllers":{"name":"-visibleSectionControllers","abstract":"An unordered array of the currently visible section controllers.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)visibleObjects":{"name":"-visibleObjects","abstract":"An unordered array of the currently visible objects.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)visibleCellsForObject:":{"name":"-visibleCellsForObject:","abstract":"An unordered array of the currently visible cells for a given object.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)scrollToObject:supplementaryKinds:scrollDirection:scrollPosition:animated:":{"name":"-scrollToObject:supplementaryKinds:scrollDirection:scrollPosition:animated:","abstract":"Scrolls to the specified object in the list adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)sizeForItemAtIndexPath:":{"name":"-sizeForItemAtIndexPath:","abstract":"Returns the size of a cell at the specified index path.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)sizeForSupplementaryViewOfKind:atIndexPath:":{"name":"-sizeForSupplementaryViewOfKind:atIndexPath:","abstract":"Returns the size of a supplementary view in the list at the specified index path.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)addUpdateListener:":{"name":"-addUpdateListener:","abstract":"Adds a listener to the list adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html#/c:objc(cs)IGListAdapter(im)removeUpdateListener:":{"name":"-removeUpdateListener:","abstract":"Removes a listener from the list adapter.
","parent_name":"IGListAdapter"},"Classes/IGListAdapter.html":{"name":"IGListAdapter","abstract":"IGListAdapter
objects provide an abstraction for feeds of objects in a UICollectionView
by breaking each object"},"Classes/IGListAdapterUpdater.html":{"name":"IGListAdapterUpdater","abstract":"
An IGListAdapterUpdater
is a concrete type that conforms to IGListUpdatingDelegate
."},"Classes/IGListBatchUpdateData.html":{"name":"IGListBatchUpdateData","abstract":"
An instance of IGListBatchUpdateData
takes section indexes and item index paths"},"Classes/IGListBindingSectionController.html":{"name":"IGListBindingSectionController","abstract":"
This section controller uses a data source to transform its top level object into an array of diffable view models."},"Classes/IGListCollectionView.html":{"name":"IGListCollectionView","abstract":"
This UICollectionView
subclass allows for partial layout invalidation using IGListCollectionViewLayout
.
"},"Classes/IGListCollectionViewLayout.html":{"name":"IGListCollectionViewLayout","abstract":"This UICollectionViewLayout subclass is for vertically or horizontally scrolling lists of data with variable widths and"},"Classes/IGListGenericSectionController.html":{"name":"IGListGenericSectionController","abstract":"
This class adds a helper layer to IGListSectionController\u0010
to automatically store a generic object in"},"Classes/IGListIndexPathResult.html":{"name":"IGListIndexPathResult","abstract":"
A result object returned when diffing with sections.
"},"Classes/IGListIndexSetResult.html":{"name":"IGListIndexSetResult","abstract":"A result object returned when diffing with indexes.
"},"Classes/IGListMoveIndex.html":{"name":"IGListMoveIndex","abstract":"An object representing a move between indexes.
"},"Classes/IGListMoveIndexPath.html":{"name":"IGListMoveIndexPath","abstract":"An object representing a move between indexes.
"},"Classes.html#/c:objc(cs)IGListReloadDataUpdater":{"name":"IGListReloadDataUpdater","abstract":"An IGListReloadDataUpdater
is a concrete type that conforms to IGListUpdatingDelegate
."},"Classes/IGListSectionController.html":{"name":"IGListSectionController","abstract":"
The base class for section controllers used in a list. This class is intended to be subclassed.
"},"Classes/IGListSingleSectionController.html":{"name":"IGListSingleSectionController","abstract":"This section controller is meant to make building simple, single-cell lists easier. By providing the type of cell, a block"},"Classes/IGListStackedSectionController.html":{"name":"IGListStackedSectionController","abstract":"
An instance of IGListStackedSectionController
is a clustered section controller, composed of many child section"},"iglistdiffable-and-equality.html":{"name":"IGListDiffable and Equality"},"migration.html":{"name":"Migration"},"working-with-uicollectionview.html":{"name":"Working with UICollectionView"},"working-with-core-data.html":{"name":"Working with Core Data"},"getting-started.html":{"name":"Getting Started"},"vision.html":{"name":"VISION"},"best-practices-and-faq.html":{"name":"Best Practices and FAQ"},"installation.html":{"name":"Installation"},"modeling-and-binding.html":{"name":"Modeling and Binding"},"Guides.html":{"name":"Guides","abstract":"
The following guides are available globally.
"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally.
"},"Constants.html":{"name":"Constants","abstract":"The following constants are available globally.
"},"Enums.html":{"name":"Enumerations","abstract":"The following enumerations are available globally.
"},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally.
"},"Type Definitions.html":{"name":"Type Definitions","abstract":"The following type definitions are available globally.
"},"Functions.html":{"name":"Functions","abstract":"The following functions are available globally.
"}}
\ No newline at end of file
diff --git a/docs/undocumented.json b/docs/undocumented.json
index 9fc9ac361..a14a58598 100644
--- a/docs/undocumented.json
+++ b/docs/undocumented.json
@@ -1,10 +1,10 @@
{
"warnings": [
{
- "file": "/Users/rnystrom/Development/iOS/IGListKit/IGListKit/IGListBindingSectionControllerSelectionDelegate.h",
- "line": 43,
- "symbol": "IGListBindingSectionControllerSelectionDelegate.-sectionController:didDeselectItemAtIndex:viewModel:",
- "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance",
+ "file": "/Users/rnystrom/Development/iOS/IGListKit/IGListKit/IGListAdapterUpdateListener.h",
+ "line": 19,
+ "symbol": "IGListAdapterUpdateType",
+ "symbol_kind": "sourcekitten.source.lang.objc.decl.typedef",
"warning": "undocumented"
},
{
@@ -20,13 +20,6 @@
"symbol": "IGListExperiment",
"symbol_kind": "sourcekitten.source.lang.objc.decl.typedef",
"warning": "undocumented"
- },
- {
- "file": "/Users/rnystrom/Development/iOS/IGListKit/IGListKit/IGListScrollDelegate.h",
- "line": 58,
- "symbol": "IGListScrollDelegate.-listAdapter:didEndDeceleratingSectionController:",
- "symbol_kind": "sourcekitten.source.lang.objc.decl.method.instance",
- "warning": "undocumented"
}
],
"source_directory": "/Users/rnystrom/Development/iOS/IGListKit"
diff --git a/docs/vision.html b/docs/vision.html
index b44de852e..b6302caf3 100644
--- a/docs/vision.html
+++ b/docs/vision.html
@@ -74,6 +74,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -118,8 +121,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -137,6 +143,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -155,6 +164,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -170,6 +182,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -268,8 +283,8 @@ Communication
diff --git a/docs/working-with-core-data.html b/docs/working-with-core-data.html
index a9df3f50b..966561be0 100644
--- a/docs/working-with-core-data.html
+++ b/docs/working-with-core-data.html
@@ -74,6 +74,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -118,8 +121,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -137,6 +143,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -155,6 +164,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -170,6 +182,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -245,7 +260,7 @@ Further discussion
There are further discussions on this topic at #460 , #461 , #407 .
Basic Setup
-The basic setup for Core Data and IGListKit
is the same as the normal setup that is found in the Getting Started Guide . The main difference will be in the setup of the model used in the IGListAdapterDataSource
.
+The basic setup for Core Data and IGListKit
is the same as the normal setup that is found in the Getting Started Guide . The main difference will be in the setup of the model used in the IGListAdapterDataSource
.
Working with view model
Creating a view model
@@ -276,7 +291,7 @@ Creating a view model
}
-The IGListDiffable
protocol is implemented on the ViewModel
layer:
+The IGListDiffable
protocol is implemented on the ViewModel
layer:
extension UserViewModel : ListDiffable {
public func diffIdentifier () -> NSObjectProtocol {
@@ -356,7 +371,7 @@ Track changes to Core Data
-The data source retrieves ViewModels and configures the IGListSectionController
with them:
+The data source retrieves ViewModels and configures the IGListSectionController
with them:
func objects ( for listAdapter : ListAdapter ) -> [ ListDiffable ] {
return self . userProvider . getUsers ()
}
@@ -373,8 +388,8 @@ Reacting to Core Da
diff --git a/docs/working-with-uicollectionview.html b/docs/working-with-uicollectionview.html
index b2b392de1..d64a4b1d6 100644
--- a/docs/working-with-uicollectionview.html
+++ b/docs/working-with-uicollectionview.html
@@ -74,6 +74,9 @@
IGListBindingSectionController
+
+ IGListCollectionView
+
IGListCollectionViewLayout
@@ -118,8 +121,11 @@
- Enums
+ Enumerations
+
+ IGListAdapterUpdateType
+
IGListDiffOption
@@ -137,6 +143,9 @@
IGListAdapterDelegate
+
+ IGListAdapterUpdateListener
+
IGListAdapterUpdaterDelegate
@@ -155,6 +164,9 @@
IGListCollectionContext
+
+ IGListCollectionViewDelegateLayout
+
IGListDiffable
@@ -170,6 +182,9 @@
IGListSupplementaryViewSource
+
+ IGListTransitionDelegate
+
IGListUpdatingDelegate
@@ -235,12 +250,12 @@ Working with This guide provides details on how to work with UICollectionView
and IGListKit
.
Background
-Early versions of IGListKit
(2.x and prior) shipped with a subclass of UICollectionView
called IGListCollectionView
. The class contained no special functionality and was merely used to enforce compile-time restrictions to prevent users from calling certain methods directly on UICollectionView
. Beginning with 3.0, IGListCollectionView
was removed for a number of reasons.
+Early versions of IGListKit
(2.x and prior) shipped with a subclass of UICollectionView
called IGListCollectionView
. The class contained no special functionality and was merely used to enforce compile-time restrictions to prevent users from calling certain methods directly on UICollectionView
. Beginning with 3.0, IGListCollectionView
was removed for a number of reasons.
For further discussion see #240 and #409 .
Methods to avoid
-One of the primary purposes of IGListKit
is to perform optimal batch updates for UICollectionView
. Thus, clients should never call any APIs on UICollectionView
that involved reloading, inserting, deleting, or otherwise updating cells and index paths. Instead, use the APIs provided by IGListAdapter
. You should also avoid setting the delegate
and dataSource
of the collection view, as this is also the responsibility of IGListAdapter
.
+One of the primary purposes of IGListKit
is to perform optimal batch updates for UICollectionView
. Thus, clients should never call any APIs on UICollectionView
that involved reloading, inserting, deleting, or otherwise updating cells and index paths. Instead, use the APIs provided by IGListAdapter
. You should also avoid setting the delegate
and dataSource
of the collection view, as this is also the responsibility of IGListAdapter
.
Avoid calling the following methods:
- ( void ) performBatchUpdates :( void ( ^ )( void )) updates
@@ -287,8 +302,8 @@