title: UICollectionView performBatchUpdates: animates all sections
body: <p>I'm writing a custom <code>UICollectionViewFlowLayout</code> and I've noticed that <code>initialLayoutAttributesForAppearingItemAtIndexPath:</code> and <code>initialLayoutAttributesForAppearingDecorationElementOfKind:atIndexPath:</code> will be called for all sections when I invoke <code>performBatchUpdates:completion:</code> on the collection view. The result is that <em>all</em> sections have the animation applied to them instead of <em>just</em> the newly added section. </p>
  
  <pre><code>[collectionView performBatchUpdates:^{
      currentModelArrayIndex++;
      [collectionView insertSections:[NSIndexSet indexSetWithIndex:currentModelArrayIndex]];
      [collectionView reloadSections:[NSIndexSet indexSetWithIndex:currentModelArrayIndex-1]];
  } completion:^(BOOL finished) {
      [collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:currentModelArrayIndex] atScrollPosition:UICollectionViewScrollPositionTop animated:YES];
  }];
  </code></pre>
  
  <p>What I've tried so far is removing the call to <code>performBatchUpdates:completion:</code> in lieu of simple updates, but the already existing sections (all of them) are animated in anyway. I've come up with a solution of checking to make sure that I'm changing the layout attributes of <em>only</em> the last section, but it feels hacky. </p>
  
  <pre><code>if (decorationIndexPath.section == [(id&lt;UICollectionViewDataSource&gt;)self.collectionView.delegate numberOfSectionsInCollectionView:self.collectionView] - 1)
  {
     layoutAttributes.alpha = 0.0f;
     layoutAttributes.transform3D = CATransform3DMakeTranslation(-CGRectGetWidth(layoutAttributes.frame), 0, 0);
  }
  </code></pre>
  
  <p>Is this the proper way to go about animating only some sections? </p>