# Classes

The following classes are available globally.

- `IGListAdapter`

  `IGListAdapter` objects provide an abstraction for feeds of objects in a `UICollectionView` by breaking each object into individual sections, called section controllers. These controllers (objects conforming to `IGListSectionType`) act as a data source and delegate for each section.

  Feed implementations must act as the data source for an `IGListAdapter` in order to drive the objects and section controllers in a collection view.

  See more

  #### Declaration

  Objective-C

      @interface IGListAdapter : NSObject

  Swift

      class IGListAdapter

- `IGListAdapterUpdater`

  An `IGListAdapterUpdater` is a concrete type that conforms to `IGListUpdatingDelegate`. It is an out-of-box upater for `IGListAdapter` objects to use.

  Note

  This updater performs re-entrant, coalesced updating for a list. It also uses a least-minimal diff for calculating UI updates when `IGListAdapter` calls `-performUpdateWithCollectionView:fromObjects:toObjects:completion:`.
  See more

  #### Declaration

  Objective-C

      @interface IGListAdapterUpdater : NSObject <IGListUpdatingDelegate>

- `IGListBatchUpdateData`

  An instance of `IGListBatchUpdateData` takes section indexes and item index paths and performs cleanup on init in order to perform a crash-free update via `-[UICollectionView performBatchUpdates:completion:]`.

  See more

  #### Declaration

  Objective-C

      @interface IGListBatchUpdateData : NSObject

  Swift

      class IGListBatchUpdateData : NSObject

- `IGListCollectionView`

  This class is never actually used by the `IGListKit` infrastructure. It exists only to give compiler errors when editing methods are called on the collection view returned by `-[IGListAdapter collectionView]`.

  #### Declaration

  Objective-C

      @interface IGListCollectionView : UICollectionView

  Swift

      class IGListCollectionView

- `IGListGridCollectionViewLayout`

  `IGListGridCollectionViewLayout` provides a vertically-scrolling, section-based grid layout for `UICollectionView`. Items in the layout are displayed consecutively in a grid with exactly 1 item per section. If items are square, the appearance would be similar to the iOS Photos app. However, the size of the items for each section can vary.

  See more

  #### Declaration

  Objective-C

      @interface IGListGridCollectionViewLayout : UICollectionViewLayout

- `IGListIndexPathResult`

  A result object returned when diffing with sections.

  See more

  #### Declaration

  Objective-C

      @interface IGListIndexPathResult : NSObject

  Swift

      class IGListIndexPathResult : NSObject

- `IGListIndexSetResult`

  A result object returned when diffing with indexes.

  See more

  #### Declaration

  Objective-C

      @interface IGListIndexSetResult : NSObject

  Swift

      class IGListIndexSetResult : NSObject

- `IGListMoveIndex`

  An object representing a move between indexes.

  See more

  #### Declaration

  Objective-C

      @interface IGListMoveIndex : NSObject

  Swift

      class IGListMoveIndex : NSObject

- `IGListMoveIndexPath`

  An object representing a move between indexes.

  See more

  #### Declaration

  Objective-C

      @interface IGListMoveIndexPath : NSObject

  Swift

      class IGListMoveIndexPath : NSObject

- `IGListReloadDataUpdater`

  An `IGListReloadDataUpdater` is a concrete type that conforms to `IGListUpdatingDelegate`. It is an out-of-box upater for `IGListAdapter` objects to use.

  Note

  This updater performs simple, synchronous updates using `-[UICollectionView reloadData]`.

  #### Declaration

  Objective-C

      @interface IGListReloadDataUpdater : NSObject <IGListUpdatingDelegate>

  Swift

      class IGListReloadDataUpdater

- `IGListSectionController`

  The base class for section controllers used in a list. This class is intended to be subclassed.

  See more

  #### Declaration

  Objective-C

      @interface IGListSectionController : NSObject

  Swift

      class IGListSectionController

- `IGListSingleSectionController`

  This section controller is meant to make building simple, single-cell lists easier. By providing the type of cell, a block to configure the cell, and a block to return the size of a cell, you can use an IGListAdapter-powered list simpler architecture.

  See more

  #### Declaration

  Objective-C

      @interface IGListSingleSectionController
          : IGListSectionController <IGListSectionType>

  Swift

      class IGListSingleSectionController

- `IGListStackedSectionController`

  An instance of `IGListStackedSectionController` is a clustered section controller, composed of many child section controllers. It constructs and routes item-level indexes to the appropriate child section controller with a local index. This lets you build section controllers made up of individual units that can be shared and reused with other section controllers.

  For example, you can create a Comments section controller that displays lists of text that is used alongside photo, video, or slideshow section controllers. You then have four small and manageable section controllers instead of one huge class.

  See more

  #### Declaration

  Objective-C

      @interface IGListStackedSectionController
          : IGListSectionController <IGListSectionType>

  Swift

      class IGListStackedSectionController

© 2017 Instagram. All rights reserved. (Last updated: 2017-01-04)

Generated by jazzy ♪♫ v0.7.3, a Realm project.