UICollectionView layout of last cell

2019-04-21 06:24发布

问题:

I have a collectionview which has a UICollectionViewFlowLayout I put 10 items in it. and they have different sizes:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {

if (indexPath.row<6) {
    CGSize retval =  CGSizeMake(100, 100);
    return retval;
}

CGSize retval =  CGSizeMake(200, 130);

return retval;
}

it layouts like: first 6 cells look good, and 7-9 are correct, but the last one is not center aligned,

any one could explain this to me?

and resent days Im playing with collection layouts, but still feel confused abt the selection of flowlayout and custom layout . any principles on this?

many thx in advance.

回答1:

I came across a similar issue with the last few cells in the collection view having an unsightly offset. In my case it was a result of not honoring the section insets with respect to the item sizes.

Try setting the sectionInset of the flowLayout to 0:

flowLayout.sectionInset = UIEdgeInsetsZero;

If this doesn't work you might need to enforce a minimumInterItemSpacing as the flow layout seems to bugger this up on the last few cells:

flowLayout.minimumInteritemSpacing = 10.f;//or any reasonable number