UICollectionView макет последней ячейки

У меня есть коллекция, которая имеет UICollectionViewFlowLayout Я положил на него 10 предметов. и они имеют разные размеры:

- (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;
}

его макеты: первые 6 клеток выглядят хорошо, а 7-9 правильны, но последний не выравнивается по центру,

enter image description hereenter image description here

любой мог мне это объяснить?

и resent days Im, играющий с коллекционными макетами, но все же чувствую себя смущенным и не поддаваясь выбору flowlayout и пользовательский макет. любые принципы на этом?

много спасибо заранее.

Ответ 1

Я столкнулся с аналогичной проблемой, поскольку последние несколько ячеек в представлении коллекции имеют неприглядное смещение. В моем случае это было связано с тем, что он не соблюдал вставки разделов относительно размеров элементов.

Попробуйте установить sectionInset offlowLayout на 0:

flowLayout.sectionInset = UIEdgeInsetsZero;

Если это не сработает, вам может потребоваться принудительное использование параметра minimumInterItemSpacing, так как макет потока, похоже, искажает это в последних нескольких ячейках:

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