UICollectionView выравнивание ячеек

У меня есть UICollectionView с двумя разными типами UICollectionViewCells. Существует вкладка, которая предлагает отображать каждый тип ячейки, и только один тип ячейки может быть виден одновременно.

По какой-то причине 1 тип ячейки выравнивается слева в UICollectionView, а другой тип ячейки выравнивается горизонтально по центру. Я бы хотел, чтобы оба типа ячеек выровнялись по левому краю.

Краевые вставки:

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

Любая помощь приветствуется.


person user2312407    schedule 05.06.2013    source источник


Ответы (1)


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

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
    UICollectionViewCell *cell = [collectionView cellForItemAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:section];
    if ([cell isKindOfClass:[MyClass1 class]]){
        return UIEdgeInsetsMake(10,10,10,10);
    }else{
        return UIEdgeInsetsMake(20,10,10,10);
}

Замените MyClass1 своим правильным именем класса и поэкспериментируйте с краевыми вставками, пока не получите желаемое поведение.

person rdelmar    schedule 05.06.2013
comment
Спасибо, это была глупая ошибка. Я этого не осознавал, но центрированная ячейка была слишком широкой, чтобы в строке было больше одной ячейки. С тех пор я уменьшил размер ячейки и решил проблему. - person user2312407; 05.06.2013