Files
IGListKit/docs/Classes.html
Ryan Nystrom f2a9d93be8 Add details for 1.0 to 2.0 migration
Summary:
Added migration guide for `IGListDiffable` changes.

Closes #221
Closes https://github.com/Instagram/IGListKit/pull/274

Differential Revision: D4265446

Pulled By: rnystrom

fbshipit-source-id: b98a975a9ef65bca0d46a1011e76834ecf08c681
2016-12-02 06:58:59 -08:00

731 lines
36 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<title>Classes Reference</title>
<link rel="stylesheet" type="text/css" href="css/jazzy.css" />
<link rel="stylesheet" type="text/css" href="css/highlight.css" />
<meta charset='utf-8'>
<script src="js/jquery.min.js" defer></script>
<script src="js/jazzy.js" defer></script>
</head>
<body>
<a title="Classes Reference"></a>
<header>
<div class="content-wrapper">
<p><a href="index.html">IGListKit Docs</a> (100% documented)</p>
<p class="header-right"><a href="https://github.com/Instagram/IGListKit"><img src="img/gh.png"/>View on GitHub</a></p>
</div>
</header>
<div class="content-wrapper">
<p id="breadcrumbs">
<a href="index.html">IGListKit Reference</a>
<img id="carat" src="img/carat.png" />
Classes Reference
</p>
</div>
<div class="content-wrapper">
<nav class="sidebar">
<ul class="nav-groups">
<li class="nav-group-name">
<a href="Guides.html">Guides</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="getting-started.html">Getting Started</a>
</li>
<li class="nav-group-task">
<a href="iglistdiffable-and-equality.html">IGListDiffable and Equality</a>
</li>
<li class="nav-group-task">
<a href="migration.html">Migration</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Categories.html">Categories</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Categories.html#/c:objc(cy)NSNumber@IGListDiffable">NSNumber(IGListDiffable)</a>
</li>
<li class="nav-group-task">
<a href="Categories.html#/c:objc(cy)NSString@IGListDiffable">NSString(IGListDiffable)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Classes.html">Classes</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Classes/IGListAdapter.html">IGListAdapter</a>
</li>
<li class="nav-group-task">
<a href="Classes/IGListAdapterUpdater.html">IGListAdapterUpdater</a>
</li>
<li class="nav-group-task">
<a href="Classes/IGListBatchUpdateData.html">IGListBatchUpdateData</a>
</li>
<li class="nav-group-task">
<a href="Classes.html#/c:objc(cs)IGListCollectionView">IGListCollectionView</a>
</li>
<li class="nav-group-task">
<a href="Classes/IGListGridCollectionViewLayout.html">IGListGridCollectionViewLayout</a>
</li>
<li class="nav-group-task">
<a href="Classes/IGListIndexPathResult.html">IGListIndexPathResult</a>
</li>
<li class="nav-group-task">
<a href="Classes/IGListIndexSetResult.html">IGListIndexSetResult</a>
</li>
<li class="nav-group-task">
<a href="Classes/IGListMoveIndex.html">IGListMoveIndex</a>
</li>
<li class="nav-group-task">
<a href="Classes/IGListMoveIndexPath.html">IGListMoveIndexPath</a>
</li>
<li class="nav-group-task">
<a href="Classes.html#/c:objc(cs)IGListReloadDataUpdater">IGListReloadDataUpdater</a>
</li>
<li class="nav-group-task">
<a href="Classes/IGListSectionController.html">IGListSectionController</a>
</li>
<li class="nav-group-task">
<a href="Classes/IGListSingleSectionController.html">IGListSingleSectionController</a>
</li>
<li class="nav-group-task">
<a href="Classes/IGListStackedSectionController.html">IGListStackedSectionController</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Constants.html">Constants</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Constants.html#/c:@IGListKitVersionNumber">IGListKitVersionNumber</a>
</li>
<li class="nav-group-task">
<a href="Constants.html#/c:@IGListKitVersionString">IGListKitVersionString</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Enums.html">Enums</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Enums/IGListDiffOption.html">IGListDiffOption</a>
</li>
<li class="nav-group-task">
<a href="Enums/IGListExperiment.html">IGListExperiment</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Protocols/IGListAdapterDataSource.html">IGListAdapterDataSource</a>
</li>
<li class="nav-group-task">
<a href="Protocols/IGListAdapterDelegate.html">IGListAdapterDelegate</a>
</li>
<li class="nav-group-task">
<a href="Protocols/IGListAdapterUpdaterDelegate.html">IGListAdapterUpdaterDelegate</a>
</li>
<li class="nav-group-task">
<a href="Protocols/IGListCollectionContext.html">IGListCollectionContext</a>
</li>
<li class="nav-group-task">
<a href="Protocols/IGListDiffable.html">IGListDiffable</a>
</li>
<li class="nav-group-task">
<a href="Protocols/IGListDisplayDelegate.html">IGListDisplayDelegate</a>
</li>
<li class="nav-group-task">
<a href="Protocols/IGListScrollDelegate.html">IGListScrollDelegate</a>
</li>
<li class="nav-group-task">
<a href="Protocols/IGListSectionType.html">IGListSectionType</a>
</li>
<li class="nav-group-task">
<a href="Protocols/IGListSingleSectionControllerDelegate.html">IGListSingleSectionControllerDelegate</a>
</li>
<li class="nav-group-task">
<a href="Protocols/IGListSupplementaryViewSource.html">IGListSupplementaryViewSource</a>
</li>
<li class="nav-group-task">
<a href="Protocols/IGListUpdatingDelegate.html">IGListUpdatingDelegate</a>
</li>
<li class="nav-group-task">
<a href="Protocols/IGListWorkingRangeDelegate.html">IGListWorkingRangeDelegate</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Type Definitions.html">Type Definitions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Type Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListItemUpdateBlock">IGListItemUpdateBlock</a>
</li>
<li class="nav-group-task">
<a href="Type Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListObjectTransitionBlock">IGListObjectTransitionBlock</a>
</li>
<li class="nav-group-task">
<a href="Type Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListReloadUpdateBlock">IGListReloadUpdateBlock</a>
</li>
<li class="nav-group-task">
<a href="Type Definitions.html#/c:IGListSingleSectionController.h@T@IGListSingleSectionCellConfigureBlock">IGListSingleSectionCellConfigureBlock</a>
</li>
<li class="nav-group-task">
<a href="Type Definitions.html#/c:IGListSingleSectionController.h@T@IGListSingleSectionCellSizeBlock">IGListSingleSectionCellSizeBlock</a>
</li>
<li class="nav-group-task">
<a href="Type Definitions.html#/c:IGListAdapter.h@T@IGListUpdaterCompletion">IGListUpdaterCompletion</a>
</li>
<li class="nav-group-task">
<a href="Type Definitions.html#/c:IGListUpdatingDelegate.h@T@IGListUpdatingCompletion">IGListUpdatingCompletion</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a href="Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a href="Functions.html#/c:@F@IGListDiff">IGListDiff</a>
</li>
<li class="nav-group-task">
<a href="Functions.html#/c:@F@IGListDiffExperiment">IGListDiffExperiment</a>
</li>
<li class="nav-group-task">
<a href="Functions.html#/c:@F@IGListDiffPaths">IGListDiffPaths</a>
</li>
<li class="nav-group-task">
<a href="Functions.html#/c:@F@IGListDiffPathsExperiment">IGListDiffPathsExperiment</a>
</li>
<li class="nav-group-task">
<a href="Functions.html#/c:IGListExperiments.h@F@IGListExperimentEnabled">IGListExperimentEnabled</a>
</li>
</ul>
</li>
</ul>
</nav>
<article class="main-content">
<section>
<section class="section">
<h1>Classes</h1>
<p>The following classes are available globally.</p>
</section>
<section class="section task-group-section">
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)IGListAdapter"></a>
<a name="//apple_ref/objc/Class/IGListAdapter" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)IGListAdapter">IGListAdapter</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p><code>IGListAdapter</code> objects provide an abstraction for feeds of objects in a <code>UICollectionView</code> by breaking each object into
individual sections, called <q>section controllers</q>. These controllers (objects conforming to <code><a href="Protocols/IGListSectionType.html">IGListSectionType</a></code>) act as a
data source and delegate for each section.</p>
<p>Feed implementations must act as the data source for an <code>IGListAdapter</code> in order to drive the objects and section
controllers in a collection view.</p>
<a href="Classes/IGListAdapter.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Objective-C</p>
<pre class="highlight"><code><span class="k">@interface</span> <span class="nc">IGListAdapter</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>
</div>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">IGListAdapter</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)IGListAdapterUpdater"></a>
<a name="//apple_ref/objc/Class/IGListAdapterUpdater" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)IGListAdapterUpdater">IGListAdapterUpdater</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>An <code>IGListAdapterUpdater</code> is a concrete type that conforms to <code><a href="Protocols/IGListUpdatingDelegate.html">IGListUpdatingDelegate</a></code>.
It is an out-of-box upater for <code><a href="Classes/IGListAdapter.html">IGListAdapter</a></code> objects to use.</p>
<div class="aside aside-note">
<p class="aside-title">Note</p>
This updater performs re-entrant, coalesced updating for a list. It also uses a least-minimal diff
for calculating UI updates when <code><a href="Classes/IGListAdapter.html">IGListAdapter</a></code> calls
<code>-performUpdateWithCollectionView:fromObjects:toObjects:completion:</code>.
</div>
<a href="Classes/IGListAdapterUpdater.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Objective-C</p>
<pre class="highlight"><code><span class="k">@interface</span> <span class="nc">IGListAdapterUpdater</span> <span class="p">:</span> <span class="nc">NSObject</span> <span class="o">&lt;</span><span class="n"><a href="Protocols/IGListUpdatingDelegate.html">IGListUpdatingDelegate</a></span><span class="o">&gt;</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)IGListBatchUpdateData"></a>
<a name="//apple_ref/objc/Class/IGListBatchUpdateData" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)IGListBatchUpdateData">IGListBatchUpdateData</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>An instance of <code>IGListBatchUpdateData</code> takes section indexes and item index paths
and performs cleanup on init in order to perform a crash-free
update via <code>-[UICollectionView performBatchUpdates:completion:]</code>.</p>
<a href="Classes/IGListBatchUpdateData.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Objective-C</p>
<pre class="highlight"><code><span class="k">@interface</span> <span class="nc">IGListBatchUpdateData</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)IGListCollectionView"></a>
<a name="//apple_ref/objc/Class/IGListCollectionView" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)IGListCollectionView">IGListCollectionView</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>This class is never actually used by the <code>IGListKit</code> infrastructure.
It exists only to give compiler errors when editing
methods are called on the collection view returned by <code>-[IGListAdapter collectionView]</code>.</p>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Objective-C</p>
<pre class="highlight"><code><span class="k">@interface</span> <span class="nc">IGListCollectionView</span> <span class="p">:</span> <span class="nc">UICollectionView</span></code></pre>
</div>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">IGListCollectionView</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)IGListGridCollectionViewLayout"></a>
<a name="//apple_ref/objc/Class/IGListGridCollectionViewLayout" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)IGListGridCollectionViewLayout">IGListGridCollectionViewLayout</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p><code>IGListGridCollectionViewLayout</code> provides a vertically-scrolling, section-based grid layout for <code>UICollectionView</code>.
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.</p>
<a href="Classes/IGListGridCollectionViewLayout.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Objective-C</p>
<pre class="highlight"><code><span class="k">@interface</span> <span class="nc">IGListGridCollectionViewLayout</span> <span class="p">:</span> <span class="nc">UICollectionViewLayout</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)IGListIndexPathResult"></a>
<a name="//apple_ref/objc/Class/IGListIndexPathResult" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)IGListIndexPathResult">IGListIndexPathResult</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A result object returned when diffing with sections.</p>
<a href="Classes/IGListIndexPathResult.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Objective-C</p>
<pre class="highlight"><code><span class="k">@interface</span> <span class="nc">IGListIndexPathResult</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>
</div>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">IGListIndexPathResult</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)IGListIndexSetResult"></a>
<a name="//apple_ref/objc/Class/IGListIndexSetResult" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)IGListIndexSetResult">IGListIndexSetResult</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A result object returned when diffing with indexes.</p>
<a href="Classes/IGListIndexSetResult.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Objective-C</p>
<pre class="highlight"><code><span class="k">@interface</span> <span class="nc">IGListIndexSetResult</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>
</div>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">IGListIndexSetResult</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)IGListMoveIndex"></a>
<a name="//apple_ref/objc/Class/IGListMoveIndex" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)IGListMoveIndex">IGListMoveIndex</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>An object representing a move between indexes.</p>
<a href="Classes/IGListMoveIndex.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Objective-C</p>
<pre class="highlight"><code><span class="k">@interface</span> <span class="nc">IGListMoveIndex</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>
</div>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">IGListMoveIndex</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)IGListMoveIndexPath"></a>
<a name="//apple_ref/objc/Class/IGListMoveIndexPath" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)IGListMoveIndexPath">IGListMoveIndexPath</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>An object representing a move between indexes.</p>
<a href="Classes/IGListMoveIndexPath.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Objective-C</p>
<pre class="highlight"><code><span class="k">@interface</span> <span class="nc">IGListMoveIndexPath</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>
</div>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">IGListMoveIndexPath</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)IGListReloadDataUpdater"></a>
<a name="//apple_ref/objc/Class/IGListReloadDataUpdater" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)IGListReloadDataUpdater">IGListReloadDataUpdater</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>An <code>IGListReloadDataUpdater</code> is a concrete type that conforms to <code><a href="Protocols/IGListUpdatingDelegate.html">IGListUpdatingDelegate</a></code>.
It is an out-of-box upater for <code><a href="Classes/IGListAdapter.html">IGListAdapter</a></code> objects to use.</p>
<div class="aside aside-note">
<p class="aside-title">Note</p>
This updater performs simple, synchronous updates using <code>-[UICollectionView reloadData]</code>.
</div>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Objective-C</p>
<pre class="highlight"><code><span class="k">@interface</span> <span class="nc">IGListReloadDataUpdater</span> <span class="p">:</span> <span class="nc">NSObject</span> <span class="o">&lt;</span><span class="n"><a href="Protocols/IGListUpdatingDelegate.html">IGListUpdatingDelegate</a></span><span class="o">&gt;</span></code></pre>
</div>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">IGListReloadDataUpdater</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)IGListSectionController"></a>
<a name="//apple_ref/objc/Class/IGListSectionController" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)IGListSectionController">IGListSectionController</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The base class for section controllers used in a list. This class is intended to be subclassed.</p>
<a href="Classes/IGListSectionController.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Objective-C</p>
<pre class="highlight"><code><span class="k">@interface</span> <span class="nc">IGListSectionController</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>
</div>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">IGListSectionController</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)IGListSingleSectionController"></a>
<a name="//apple_ref/objc/Class/IGListSingleSectionController" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)IGListSingleSectionController">IGListSingleSectionController</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>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.</p>
<a href="Classes/IGListSingleSectionController.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Objective-C</p>
<pre class="highlight"><code><span class="k">@interface</span> <span class="nc">IGListSingleSectionController</span>
<span class="p">:</span> <span class="nc">IGListSectionController</span> <span class="o">&lt;</span><span class="n"><a href="Protocols/IGListSectionType.html">IGListSectionType</a></span><span class="o">&gt;</span></code></pre>
</div>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">IGListSingleSectionController</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<ul>
<li class="item">
<div>
<code>
<a name="/c:objc(cs)IGListStackedSectionController"></a>
<a name="//apple_ref/objc/Class/IGListStackedSectionController" class="dashAnchor"></a>
<a class="token" href="#/c:objc(cs)IGListStackedSectionController">IGListStackedSectionController</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>An instace of <code>IGListStackedSectionController</code> 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.</p>
<p>For example, you can create a <q>Comments</q> 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.</p>
<a href="Classes/IGListStackedSectionController.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Objective-C</p>
<pre class="highlight"><code><span class="k">@interface</span> <span class="nc">IGListStackedSectionController</span>
<span class="p">:</span> <span class="nc">IGListSectionController</span> <span class="o">&lt;</span><span class="n"><a href="Protocols/IGListSectionType.html">IGListSectionType</a></span><span class="o">&gt;</span></code></pre>
</div>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight"><code><span class="kd">class</span> <span class="kt">IGListStackedSectionController</span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
</section>
</section>
<section id="footer">
<p>&copy; 2016 <a class="link" href="https://twitter.com/fbOpenSource" target="_blank" rel="external">Instagram</a>. All rights reserved. (Last updated: 2016-12-02)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.2</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</article>
</div>
</body>
</div>
</html>