I'm having a weird issue, when using a collection view with dynamic sizes, this issue doesn't happens while using fixed sizes.

After a reload the first cell of each section disappears, but only if they are out of the screen. After a few tests I realize that the cell didn't disappear, but its hidden bellow the section header.

Do you have any idea what is causing this?

**Collection without reloading:**

[![Collection without reloading](https://i.stack.imgur.com/Efz4c.png)](https://i.stack.imgur.com/Efz4c.png)

**Collection after reloading with cell visible:**

[![Collection after reloading with cell visible](https://i.stack.imgur.com/pJwqH.png)](https://i.stack.imgur.com/pJwqH.png)

**Collection after reloading with cell out of screen:**

[![Collection after reloading with cell out of screen](https://i.stack.imgur.com/YAcUq.png)](https://i.stack.imgur.com/YAcUq.png)

**3D view of the cell after reloading:**

[![3D view of the cell after reloading](https://i.stack.imgur.com/xr5qg.png)](https://i.stack.imgur.com/xr5qg.png)

**The code:**

```
#pragma mark - UICollectionViewDataSource

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {

    return self.sections.count;
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)sectionIndex {

    Section *section = [self.sections objectAtIndex:sectionIndex];
    return section.items.count;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {

    Section *section = [self.sections objectAtIndex:indexPath.section];
    Item *item = [section.items objectAtIndex:indexPath.row];

    if (self.editing) {
        EditingCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell-editing" forIndexPath:indexPath];
        cell.item = item;
        return cell;
    } else {
        BasicCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
        cell.item = item;
        return cell;
    }
}

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {

    if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {
        HeaderCollectionReusableView *header = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:@"header" forIndexPath:indexPath];
        Section *section = [self.sections objectAtIndex:indexPath.section];
        header.title = section.title;

        return header;
    } else {
        UICollectionReusableView *footer = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:@"footer" forIndexPath:indexPath];

        return footer;
    }
}

```

```
@implementation DetailCollectionViewLayout

- (instancetype)init {
    if (self = [super init]) {
        [self initialize];
    }

    return self;
}

- (instancetype)initWithCoder:(NSCoder *)aDecoder {
    if (self = [super initWithCoder:aDecoder]) {
        [self initialize];
    }

    return self;
}

- (void)prepareLayout {
    CGFloat cellWidth = (isIPAD) ? 288 : CGRectGetWidth(self.collectionView.bounds);
    CGFloat headerWidth = CGRectGetWidth(self.collectionView.bounds);

    //    CGFloat ratio = (isIPAD) ? 0.33 : 0.66;
    self.estimatedItemSize = CGSizeMake(cellWidth, 53);
    self.headerReferenceSize = CGSizeMake(headerWidth, 50);
    self.footerReferenceSize = CGSizeMake(headerWidth, 1 + self.minimumInteritemSpacing);
    [super prepareLayout];
}

- (void)initialize {
    self.minimumLineSpacing = 0;
    self.minimumInteritemSpacing = (isIPAD) ? 5 : 10;
    self.estimatedItemSize = CGSizeZero;
    self.scrollDirection = UICollectionViewScrollDirectionVertical;
    self.sectionInset = UIEdgeInsetsZero;
}

-(BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds {
    return YES;
}

@end

```

I made a simple sample project and record a video: <http://sendvid.com/330uo5jm>

It looks like the issue is the position from the first cell.