title: Flash scroll indicators of UICollectionView after changing data source
body: <p>I'm swapping out the data being displayed in my collection view by changing the datasource. This is being done as part of a tab-like interface. When the new data loads, I would like to flash the scroll indicators to tell the user that there's more data outside of the viewport.</p>
  
  <p><strong>Immediately</strong></p>
  
  <p>Doing so immediately doesn't work because the collection view hasn't loaded the data yet:</p>
  
  <pre><code>collectionView.dataSource = dataSource2;
  [collectionView flashScrollIndicators]; // dataSource2 isn't loaded yet
  </code></pre>
  
  <p><strong>dispatch_async</strong></p>
  
  <p>Dispatching the <code>flashScrollIndicators</code> call later doesn't work either:</p>
  
  <pre><code>collectionView.dataSource = dataSource2;
  dispatch_async(dispatch_get_main_queue(), ^{
      [collectionView flashScrollIndicators]; // dataSource2 still isn't loaded
  });
  </code></pre>
  
  <p><strong>performSelector:withObject:afterDelay:</strong></p>
  
  <p>Executing the <code>flashScrollIndicators</code> after a timed delay does work (I saw it somewhere else on SO), but leads to a bit of lag with the scroll indicators being shown. I could decrease the delay, but it seems like it'll just leads to a race condition:</p>
  
  <pre><code>collectionView.dataSource = dataSource2;
  [collectionView performSelector:@selector(flashScrollIndicators) withObject:nil afterDelay:0.5];
  </code></pre>
  
  <p>Is there a callback that I can hook on to to flash the scroll indicators as soon as the collection view has picked up on the new data and resized the content view?</p>