If you implement the UICollectionView method:
- (void) collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath
The indexPath that gets passed in is incorrect and the collectionView will render incorrectly, if you pull the data to populate any items of the cell using this indexPath in this method.
We had to move the code from this method into collectionview: cellForItemAtIndexPath: to get it to function properly.
The willDisplayCell: method should have the same treatment in your SDK as the cellForItemAtIndexPath method.