title: UICollectionView change layout with custom animation
body: <p>I have two collectionViewLayout, verticalFlowLayout and fullScreenHorizontalFlowLayout.</p>
  
  <pre><code>@implementation VerticalFlowLayout
  - (instancetype)init
  {
      if (self = [super init]) {
          self.sectionInset = UIEdgeInsetsMake(12, 0, 0, 0);
          self.minimumLineSpacing = 10;
          self.minimumInteritemSpacing = 0;
          self.itemSize = CGSizeMake(CGRectGetWidth([UIScreen mainScreen].bounds), 244);
      }
      return self;
  }
  @end
  </code></pre>
  
  <hr>
  
  <pre><code>@implementation FullScreenFlowLayout
  - (instancetype)init
  {
      if (self = [super init]) {
          self.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0);
          self.minimumLineSpacing = 10;
          self.minimumInteritemSpacing = 0;
          self.itemSize = CGSizeMake(CGRectGetWidth([UIScreen mainScreen].bounds), CGRectGetHeight([UIScreen mainScreen].bounds));
          self.scrollDirection = UICollectionViewScrollDirectionHorizontal;
      }
      return self;
  }
  </code></pre>
  
  <p>when I select a cell I want to change collectionView layout with <strong>custom animation</strong>. default animation is a linear animation with 0.33 duration.</p>
  
  <pre><code>    - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
  {
      if ([_collectionView.collectionViewLayout isKindOfClass:[FullScreenFlowLayout class]]) {
          VerticalFlowLayout *flowLayout = [VerticalFlowLayout new];
          [_collectionView setCollectionViewLayout:flowLayout animated:YES completion:^(BOOL finished) {
  
          }];
      }
      else
          [_collectionView setCollectionViewLayout:[FullScreenFlowLayout new] animated:YES];
  
  }
  </code></pre>
  
  <p>How can I do that? </p>