RVN RVN - 5 months ago 28
iOS Question

How to center align the cells of a UICollectionView?

I am currently using

UICollectionView
for the user interface grid, and it works fine. However, I'd like to be enable horizontal scrolling. The grid supports 8 items per page and when the total number of items are, say 4, this is how the items should be arranged with horizontal scroll direction enabled:

0 0 x x
0 0 x x


Here 0 -> Collection Item
and x -> Empty Cells

Is there a way to make them center aligned like:

x 0 0 x
x 0 0 x


So that the content looks more clean?

Also the below arrangement might also be a solution I am expecting.

0 0 0 0
x x x x

Answer

I think you can achieve the single line look by implementing something like this:

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
    return UIEdgeInsetsMake(0, 100, 0, 0);
}

You will have to play around with that number to figure out how to force the content into a single line. The first 0, is the top edge argument, you could adjust that one too, if you want to center the content vertically in the screen.