Files
AsyncDisplayKit/appledoc/Classes/ASCollectionView.html
2015-09-16 14:54:25 +03:00

1393 lines
36 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ASCollectionView Class Reference</title>
<link rel="stylesheet" href="../css/style.css">
<meta name="viewport" content="initial-scale=1, maximum-scale=1.4">
<meta name="generator" content="appledoc 2.2.1 (build 1333)">
</head>
<body class="appledoc">
<header>
<div class="container" class="hide-in-xcode">
<h1 id="library-title">
<a href="../index.html">AsyncDisplayKit </a>
</h1>
<p id="developer-home">
<a href="../index.html">Facebook</a>
</p>
</div>
</header>
<aside>
<div class="container">
<nav>
<ul id="header-buttons" role="toolbar">
<li><a href="../index.html">Index</a></li>
<li><a href="../hierarchy.html">Hierarchy</a></li>
<li id="on-this-page" role="navigation">
<label>
On This Page
<div class="chevron">
<div class="chevy chevron-left"></div>
<div class="chevy chevron-right"></div>
</div>
<select id="jump-to">
<option value="top">Jump To&#133;</option>
<option value="overview">Overview</option>
<option value="tasks">Tasks</option>
<optgroup label="Properties">
<option value="//api/name/leadingScreensForBatching">leadingScreensForBatching</option>
</optgroup>
<optgroup label="Instance Methods">
<option value="//api/name/calculatedSizeForNodeAtIndexPath:">- calculatedSizeForNodeAtIndexPath:</option>
<option value="//api/name/deleteItemsAtIndexPaths:">- deleteItemsAtIndexPaths:</option>
<option value="//api/name/deleteSections:">- deleteSections:</option>
<option value="//api/name/initWithFrame:collectionViewLayout:asyncDataFetching:">- initWithFrame:collectionViewLayout:asyncDataFetching:</option>
<option value="//api/name/insertItemsAtIndexPaths:">- insertItemsAtIndexPaths:</option>
<option value="//api/name/insertSections:">- insertSections:</option>
<option value="//api/name/moveItemAtIndexPath:toIndexPath:">- moveItemAtIndexPath:toIndexPath:</option>
<option value="//api/name/moveSection:toSection:">- moveSection:toSection:</option>
<option value="//api/name/nodeForItemAtIndexPath:">- nodeForItemAtIndexPath:</option>
<option value="//api/name/performBatchAnimated:updates:completion:">- performBatchAnimated:updates:completion:</option>
<option value="//api/name/performBatchUpdates:completion:">- performBatchUpdates:completion:</option>
<option value="//api/name/reloadData">- reloadData</option>
<option value="//api/name/reloadDataWithCompletion:">- reloadDataWithCompletion:</option>
<option value="//api/name/reloadItemsAtIndexPaths:">- reloadItemsAtIndexPaths:</option>
<option value="//api/name/reloadSections:">- reloadSections:</option>
<option value="//api/name/scrollDirection">- scrollDirection</option>
<option value="//api/name/scrollableDirections">- scrollableDirections</option>
<option value="//api/name/setTuningParameters:forRangeType:">- setTuningParameters:forRangeType:</option>
<option value="//api/name/tuningParametersForRangeType:">- tuningParametersForRangeType:</option>
<option value="//api/name/visibleNodes">- visibleNodes</option>
</optgroup>
</select>
</label>
</li>
</ul>
</nav>
</div>
</aside>
<article>
<div id="overview_contents" class="container">
<div id="content">
<main role="main">
<h1 class="title">ASCollectionView Class Reference</h1>
<div class="section section-specification"><table cellspacing="0"><tbody>
<tr>
<th>Inherits from</th>
<td>UICollectionView</td>
</tr><tr>
<th>Declared in</th>
<td>ASCollectionView.h</td>
</tr>
</tbody></table></div>
<div class="section section-overview">
<a title="Overview" name="overview"></a>
<h2 class="subtitle subtitle-overview">Overview</h2>
<p>Node-based collection view.</p>
<p>ASCollectionView is a version of UICollectionView that uses nodes &ndash; specifically, ASCellNode subclasses &ndash; with asynchronous
pre-rendering instead of synchronously loading UICollectionViewCells.</p>
</div>
<div class="section section-tasks">
<a title="Tasks" name="tasks"></a>
<div class="task-list">
<div class="section-method">
<a name="//api/name/tuningParametersForRangeType:" title="tuningParametersForRangeType:"></a>
<h3 class="method-title"><code><a href="#//api/name/tuningParametersForRangeType:">&ndash;&nbsp;tuningParametersForRangeType:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Tuning parameters for a range type.</p>
</div>
<div class="method-subsection method-declaration"><code>- (ASRangeTuningParameters)tuningParametersForRangeType:(ASLayoutRangeType)<em>rangeType</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>rangeType</code></th>
<td><p>The range type to get the tuning parameters for.</p></td>
</tr>
</table>
</div>
<div class="method-subsection return">
<h4 class="method-subtitle parameter-title">Return Value</h4>
<p>A tuning parameter value for the given range type.</p>
<p>Defaults to the render range having one sceenful both leading and trailing and the preload range having two
screenfuls in both directions.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/setTuningParameters:forRangeType:" title="setTuningParameters:forRangeType:"></a>
<h3 class="method-title"><code><a href="#//api/name/setTuningParameters:forRangeType:">&ndash;&nbsp;setTuningParameters:forRangeType:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Set the tuning parameters for a range type.</p>
</div>
<div class="method-subsection method-declaration"><code>- (void)setTuningParameters:(ASRangeTuningParameters)<em>tuningParameters</em> forRangeType:(ASLayoutRangeType)<em>rangeType</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>tuningParameters</code></th>
<td><p>The tuning parameters to store for a range type.</p></td>
</tr>
<tr>
<th scope="row" class="argument-name"><code>rangeType</code></th>
<td><p>The range type to set the tuning parameters for.</p></td>
</tr>
</table>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/initWithFrame:collectionViewLayout:asyncDataFetching:" title="initWithFrame:collectionViewLayout:asyncDataFetching:"></a>
<h3 class="method-title"><code><a href="#//api/name/initWithFrame:collectionViewLayout:asyncDataFetching:">&ndash;&nbsp;initWithFrame:collectionViewLayout:asyncDataFetching:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Initializer.</p>
</div>
<div class="method-subsection method-declaration"><code>- (instancetype)initWithFrame:(CGRect)<em>frame</em> collectionViewLayout:(UICollectionViewLayout *)<em>layout</em> asyncDataFetching:(BOOL)<em>asyncDataFetchingEnabled</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>frame</code></th>
<td><p>The frame rectangle for the collection view, measured in points. The origin of the frame is relative to the superview
in which you plan to add it. This frame is passed to the superclass during initialization.</p></td>
</tr>
<tr>
<th scope="row" class="argument-name"><code>layout</code></th>
<td><p>The layout object to use for organizing items. The collection view stores a strong reference to the specified object.
Must not be nil.</p></td>
</tr>
<tr>
<th scope="row" class="argument-name"><code>asyncDataFetchingEnabled</code></th>
<td><p>Enable the data fetching in async mode.</p></td>
</tr>
</table>
</div>
<div class="method-subsection discussion-section">
<h4 class="method-subtitle">Discussion</h4>
<p>If asyncDataFetching is enabled, the <code>AScollectionView</code> will fetch data through <code>collectionView:numberOfRowsInSection:</code> and
<code>collectionView:nodeForRowAtIndexPath:</code> in async mode from background thread. Otherwise, the methods will be invoked synchronically
from calling thread.
Enabling asyncDataFetching could avoid blocking main thread for <code>ASCellNode</code> allocation, which is frequently reported issue for
large scale data. On another hand, the application code need take the responsibility to avoid data inconsistence. Specifically,
we will lock the data source through <code>collectionViewLockDataSource</code>, and unlock it by <code>collectionViewUnlockDataSource</code> after the data fetching.
The application should not update the data source while the data source is locked, to keep data consistence.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/leadingScreensForBatching" title="leadingScreensForBatching"></a>
<h3 class="method-title"><code><a href="#//api/name/leadingScreensForBatching">&nbsp;&nbsp;leadingScreensForBatching</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>The number of screens left to scroll before the delegate -collectionView:beginBatchFetchingWithContext: is called.</p>
</div>
<div class="method-subsection method-declaration"><code>@property (nonatomic, assign) CGFloat leadingScreensForBatching</code></div>
<div class="method-subsection discussion-section">
<h4 class="method-subtitle">Discussion</h4>
<p>Defaults to one screenful.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/performBatchAnimated:updates:completion:" title="performBatchAnimated:updates:completion:"></a>
<h3 class="method-title"><code><a href="#//api/name/performBatchAnimated:updates:completion:">&ndash;&nbsp;performBatchAnimated:updates:completion:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Perform a batch of updates asynchronously, optionally disabling all animations in the batch. This method must be called from the main thread.
The asyncDataSource must be updated to reflect the changes before the update block completes.</p>
</div>
<div class="method-subsection method-declaration"><code>- (void)performBatchAnimated:(BOOL)<em>animated</em> updates:(void ( ^ ) ( ))<em>updates</em> completion:(void ( ^ ) ( BOOL ))<em>completion</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>animated</code></th>
<td><p>NO to disable animations for this batch</p></td>
</tr>
<tr>
<th scope="row" class="argument-name"><code>updates</code></th>
<td><p>The block that performs the relevant insert, delete, reload, or move operations.</p></td>
</tr>
<tr>
<th scope="row" class="argument-name"><code>completion</code></th>
<td><p>A completion handler block to execute when all of the operations are finished. This block takes a single
Boolean parameter that contains the value YES if all of the related animations completed successfully or
NO if they were interrupted. This parameter may be nil. If supplied, the block is run on the main thread.</p></td>
</tr>
</table>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/performBatchUpdates:completion:" title="performBatchUpdates:completion:"></a>
<h3 class="method-title"><code><a href="#//api/name/performBatchUpdates:completion:">&ndash;&nbsp;performBatchUpdates:completion:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Perform a batch of updates asynchronously. This method must be called from the main thread.
The asyncDataSource must be updated to reflect the changes before update block completes.</p>
</div>
<div class="method-subsection method-declaration"><code>- (void)performBatchUpdates:(void ( ^ ) ( ))<em>updates</em> completion:(void ( ^ ) ( BOOL ))<em>completion</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>updates</code></th>
<td><p>The block that performs the relevant insert, delete, reload, or move operations.</p></td>
</tr>
<tr>
<th scope="row" class="argument-name"><code>completion</code></th>
<td><p>A completion handler block to execute when all of the operations are finished. This block takes a single
Boolean parameter that contains the value YES if all of the related animations completed successfully or
NO if they were interrupted. This parameter may be nil. If supplied, the block is run on the main thread.</p></td>
</tr>
</table>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/reloadDataWithCompletion:" title="reloadDataWithCompletion:"></a>
<h3 class="method-title"><code><a href="#//api/name/reloadDataWithCompletion:">&ndash;&nbsp;reloadDataWithCompletion:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Reload everything from scratch, destroying the working range and all cached nodes.</p>
</div>
<div class="method-subsection method-declaration"><code>- (void)reloadDataWithCompletion:(void ( ^ ) ( ))<em>completion</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>completion</code></th>
<td><p>block to run on completion of asynchronous loading or nil. If supplied, the block is run on
the main thread.</p></td>
</tr>
</table>
</div>
<div class="method-subsection discussion-section">
<h4 class="method-subtitle">Discussion</h4>
<div class="warning"><p><strong>Warning:</strong> This method is substantially more expensive than UICollectionView&rsquo;s version.</p></div>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/reloadData" title="reloadData"></a>
<h3 class="method-title"><code><a href="#//api/name/reloadData">&ndash;&nbsp;reloadData</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Reload everything from scratch, destroying the working range and all cached nodes.</p>
</div>
<div class="method-subsection method-declaration"><code>- (void)reloadData</code></div>
<div class="method-subsection discussion-section">
<h4 class="method-subtitle">Discussion</h4>
<div class="warning"><p><strong>Warning:</strong> This method is substantially more expensive than UICollectionView&rsquo;s version.</p></div>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/insertSections:" title="insertSections:"></a>
<h3 class="method-title"><code><a href="#//api/name/insertSections:">&ndash;&nbsp;insertSections:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Inserts one or more sections.</p>
</div>
<div class="method-subsection method-declaration"><code>- (void)insertSections:(NSIndexSet *)<em>sections</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>sections</code></th>
<td><p>An index set that specifies the sections to insert.</p></td>
</tr>
</table>
</div>
<div class="method-subsection discussion-section">
<h4 class="method-subtitle">Discussion</h4>
<p>This method must be called from the main thread. The asyncDataSource must be updated to reflect the changes
before this method is called.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/deleteSections:" title="deleteSections:"></a>
<h3 class="method-title"><code><a href="#//api/name/deleteSections:">&ndash;&nbsp;deleteSections:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Deletes one or more sections.</p>
</div>
<div class="method-subsection method-declaration"><code>- (void)deleteSections:(NSIndexSet *)<em>sections</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>sections</code></th>
<td><p>An index set that specifies the sections to delete.</p></td>
</tr>
</table>
</div>
<div class="method-subsection discussion-section">
<h4 class="method-subtitle">Discussion</h4>
<p>This method must be called from the main thread. The asyncDataSource must be updated to reflect the changes
before this method is called.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/reloadSections:" title="reloadSections:"></a>
<h3 class="method-title"><code><a href="#//api/name/reloadSections:">&ndash;&nbsp;reloadSections:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Reloads the specified sections.</p>
</div>
<div class="method-subsection method-declaration"><code>- (void)reloadSections:(NSIndexSet *)<em>sections</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>sections</code></th>
<td><p>An index set that specifies the sections to reload.</p></td>
</tr>
</table>
</div>
<div class="method-subsection discussion-section">
<h4 class="method-subtitle">Discussion</h4>
<p>This method must be called from the main thread. The asyncDataSource must be updated to reflect the changes
before this method is called.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/moveSection:toSection:" title="moveSection:toSection:"></a>
<h3 class="method-title"><code><a href="#//api/name/moveSection:toSection:">&ndash;&nbsp;moveSection:toSection:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Moves a section to a new location.</p>
</div>
<div class="method-subsection method-declaration"><code>- (void)moveSection:(NSInteger)<em>section</em> toSection:(NSInteger)<em>newSection</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>section</code></th>
<td><p>The index of the section to move.</p></td>
</tr>
<tr>
<th scope="row" class="argument-name"><code>newSection</code></th>
<td><p>The index that is the destination of the move for the section.</p></td>
</tr>
</table>
</div>
<div class="method-subsection discussion-section">
<h4 class="method-subtitle">Discussion</h4>
<p>This method must be called from the main thread. The asyncDataSource must be updated to reflect the changes
before this method is called.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/insertItemsAtIndexPaths:" title="insertItemsAtIndexPaths:"></a>
<h3 class="method-title"><code><a href="#//api/name/insertItemsAtIndexPaths:">&ndash;&nbsp;insertItemsAtIndexPaths:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Inserts items at the locations identified by an array of index paths.</p>
</div>
<div class="method-subsection method-declaration"><code>- (void)insertItemsAtIndexPaths:(NSArray *)<em>indexPaths</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>indexPaths</code></th>
<td><p>An array of NSIndexPath objects, each representing an item index and section index that together identify an item.</p></td>
</tr>
</table>
</div>
<div class="method-subsection discussion-section">
<h4 class="method-subtitle">Discussion</h4>
<p>This method must be called from the main thread. The asyncDataSource must be updated to reflect the changes
before this method is called.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/deleteItemsAtIndexPaths:" title="deleteItemsAtIndexPaths:"></a>
<h3 class="method-title"><code><a href="#//api/name/deleteItemsAtIndexPaths:">&ndash;&nbsp;deleteItemsAtIndexPaths:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Deletes the items specified by an array of index paths.</p>
</div>
<div class="method-subsection method-declaration"><code>- (void)deleteItemsAtIndexPaths:(NSArray *)<em>indexPaths</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>indexPaths</code></th>
<td><p>An array of NSIndexPath objects identifying the items to delete.</p></td>
</tr>
</table>
</div>
<div class="method-subsection discussion-section">
<h4 class="method-subtitle">Discussion</h4>
<p>This method must be called from the main thread. The asyncDataSource must be updated to reflect the changes
before this method is called.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/reloadItemsAtIndexPaths:" title="reloadItemsAtIndexPaths:"></a>
<h3 class="method-title"><code><a href="#//api/name/reloadItemsAtIndexPaths:">&ndash;&nbsp;reloadItemsAtIndexPaths:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Reloads the specified items.</p>
</div>
<div class="method-subsection method-declaration"><code>- (void)reloadItemsAtIndexPaths:(NSArray *)<em>indexPaths</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>indexPaths</code></th>
<td><p>An array of NSIndexPath objects identifying the items to reload.</p></td>
</tr>
</table>
</div>
<div class="method-subsection discussion-section">
<h4 class="method-subtitle">Discussion</h4>
<p>This method must be called from the main thread. The asyncDataSource must be updated to reflect the changes
before this method is called.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/moveItemAtIndexPath:toIndexPath:" title="moveItemAtIndexPath:toIndexPath:"></a>
<h3 class="method-title"><code><a href="#//api/name/moveItemAtIndexPath:toIndexPath:">&ndash;&nbsp;moveItemAtIndexPath:toIndexPath:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Moves the item at a specified location to a destination location.</p>
</div>
<div class="method-subsection method-declaration"><code>- (void)moveItemAtIndexPath:(NSIndexPath *)<em>indexPath</em> toIndexPath:(NSIndexPath *)<em>newIndexPath</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>indexPath</code></th>
<td><p>The index path identifying the item to move.</p></td>
</tr>
<tr>
<th scope="row" class="argument-name"><code>newIndexPath</code></th>
<td><p>The index path that is the destination of the move for the item.</p></td>
</tr>
</table>
</div>
<div class="method-subsection discussion-section">
<h4 class="method-subtitle">Discussion</h4>
<p>This method must be called from the main thread. The asyncDataSource must be updated to reflect the changes
before this method is called.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/nodeForItemAtIndexPath:" title="nodeForItemAtIndexPath:"></a>
<h3 class="method-title"><code><a href="#//api/name/nodeForItemAtIndexPath:">&ndash;&nbsp;nodeForItemAtIndexPath:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Similar to -cellForItemAtIndexPath:.</p>
</div>
<div class="method-subsection method-declaration"><code>- (ASCellNode *)nodeForItemAtIndexPath:(NSIndexPath *)<em>indexPath</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>indexPath</code></th>
<td><p>The index path of the requested node.</p></td>
</tr>
</table>
</div>
<div class="method-subsection return">
<h4 class="method-subtitle parameter-title">Return Value</h4>
<p>a node for display at this indexpath.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/visibleNodes" title="visibleNodes"></a>
<h3 class="method-title"><code><a href="#//api/name/visibleNodes">&ndash;&nbsp;visibleNodes</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Similar to -visibleCells.</p>
</div>
<div class="method-subsection method-declaration"><code>- (NSArray *)visibleNodes</code></div>
<div class="method-subsection return">
<h4 class="method-subtitle parameter-title">Return Value</h4>
<p>an array containing the nodes being displayed on screen.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/calculatedSizeForNodeAtIndexPath:" title="calculatedSizeForNodeAtIndexPath:"></a>
<h3 class="method-title"><code><a href="#//api/name/calculatedSizeForNodeAtIndexPath:">&ndash;&nbsp;calculatedSizeForNodeAtIndexPath:</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Query the sized node at <code>indexPath</code> for its calculatedSize.</p>
</div>
<div class="method-subsection method-declaration"><code>- (CGSize)calculatedSizeForNodeAtIndexPath:(NSIndexPath *)<em>indexPath</em></code></div>
<div class="method-subsection arguments-section parameters">
<h4 class="method-subtitle parameter-title">Parameters</h4>
<table class="argument-def parameter-def">
<tr>
<th scope="row" class="argument-name"><code>indexPath</code></th>
<td><p>The index path for the node of interest.</p></td>
</tr>
</table>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/scrollDirection" title="scrollDirection"></a>
<h3 class="method-title"><code><a href="#//api/name/scrollDirection">&ndash;&nbsp;scrollDirection</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Determines collection view&rsquo;s current scroll direction. Supports 2-axis collection views.</p>
</div>
<div class="method-subsection method-declaration"><code>- (ASScrollDirection)scrollDirection</code></div>
<div class="method-subsection return">
<h4 class="method-subtitle parameter-title">Return Value</h4>
<p>a bitmask of ASScrollDirection values.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div><div class="section-method">
<a name="//api/name/scrollableDirections" title="scrollableDirections"></a>
<h3 class="method-title"><code><a href="#//api/name/scrollableDirections">&ndash;&nbsp;scrollableDirections</a></code>
</h3>
<div class="method-info">
<div class="pointy-thing"></div>
<div class="method-info-container">
<div class="method-subsection brief-description">
<p>Determines collection view&rsquo;s scrollable directions.</p>
</div>
<div class="method-subsection method-declaration"><code>- (ASScrollDirection)scrollableDirections</code></div>
<div class="method-subsection return">
<h4 class="method-subtitle parameter-title">Return Value</h4>
<p>a bitmask of ASScrollDirection values.</p>
</div>
<div class="method-subsection declared-in-section">
<h4 class="method-subtitle">Declared In</h4>
<p><code class="declared-in-ref">ASCollectionView.h</code></p>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<footer>
<div class="footer-copyright">
<p class="copyright">Copyright &copy; 2015 Facebook. All rights reserved. Updated: 2015-09-16</p>
<p class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2.1 (build 1333)</a>.</p>
</div>
</footer>
</div>
</div>
</article>
<script src="../js/script.js"></script>
</body>
</html>