title: Reload section of UICollectionView and preserve scroll position
body: <p>I have a horizontal <code>UICollectionView</code> with several sections, each containing several cells as follows:</p>
  
  <p>Section 0: one cell to cancel selection.<br>
  Section 1: recently selected items.<br>
  Section 2 and beyond: each section has several items that can be selected.</p>
  
  <p>When a cell from section 2 or later is selected, a copy of that item is inserted to the start section 1 in the data source, and I want to reload section 1 to reflect the updated recent items. But, I want to preserve the scroll position. I've tried:</p>
  
  <p><code>[collectionView reloadSections:setWithIndex1]</code> and<br>
  <code>[collectionView reloadItemsAtIndexPaths:arrayWithAllSection1IndexPaths]</code><br>
  I've tried using <code>[collectionView performBatchUpdates:]</code>, but everything I've tried makes the scroll offset reset to the beginning of the collection view. I've tried a sanity check by starting a fresh app with a basic collection view and reloading a section using <code>reloadSections</code>, and it has the desired behavior of <strong>not</strong> resetting the scroll offset. But doing the same in my existing codebase does, undesirably, reset the offset.</p>
  
  <p>I've poured over my <code>collectionView</code>-related code looking for <code>reloadData</code>'s, <code>setContentOffsets</code>'s, and similar things, but for the life of me I can't find what's causing it. Is there anything I'm missing that could be resetting the scroll position after an update?</p>