 <p>The answer to this is to use intermediate layouts. </p> <pre><code>[self.collectionView setCollectionViewLayout: layoutForStepOne animated:YES completion:^(BOOL finished) { [self.collectionView setCollectionViewLayout: layoutForStepTwo animated:YES completion:^(BOOL finished) { [self.collectionView setCollectionViewLayout: layoutForStepThree animated:YES]; }]; }]; </code></pre>