UICollectionViewFlowLayout с разделами (но без разрывов разделов)

В настоящее время я использую UICollectionViewFlowLayout очень просто:

UICollectionViewFlowLayout *flowLayout = [UICollectionViewFlowLayout alloc] init];
flowLayout.itemSize = CGSizeMake(75, 75);
flowLayout.minimumInteritemSpacing = 2;
flowLayout.minimumLineSpacing = 2;
_collectionView.collectionViewLayout = flowLayout;

У меня есть несколько разделов (ячейки из разных источников), однако я хотел бы отображать сетку непрерывно. Что бы не было видимых разрывов между секциями.

Посмотрите на скриншот, где для целей разработки я отображаю одни и те же ячейки в двух разделах.

Любые идеи, как я могу получить макет потока, чтобы разрешить несколько разделов, но не рисовать разрыв?

Снимок экрана


person Damien    schedule 10.01.2013    source источник
comment
Начиная с пустого проекта, с ванильным представлением коллекции и объектом макета, созданным, как у вас выше, я вообще не получаю пробелов между разделами. Реализуете ли вы какие-либо другие методы делегата, например, из протокола делегата макета потока?   -  person jrturton    schedule 14.01.2013
comment
Я бы сделал класс, который объединяет все источники в один. Некоторый источник класса итератора, поскольку вам не нужны разделы.   -  person Alex L    schedule 14.01.2013
comment
Можете ли вы опубликовать код (сколько массивов и т. д.), который вы используете для исходных данных?   -  person jhilgert00    schedule 15.01.2013
comment
Привет, Дэмиен, ты нашел решение для этого?   -  person Cornelius    schedule 06.11.2013
comment
@MarkGibson Нет! В итоге я получил другой дизайн пользовательского интерфейса, так что в итоге он мне не понадобился. Я не думаю, что это возможно с макетом потока.   -  person Damien    schedule 06.11.2013
comment
Эй, тебе удалось это сделать? если да, то как именно вы это сделали? Вы подклассифицировали потоковые макеты?   -  person Dekel Maman    schedule 30.03.2017
comment
Возможный дубликат UICollectionView удалить разрывы разделов с помощью UICollectionViewFlowLayout   -  person Marmoy    schedule 30.10.2017


Ответы (2)


UICollectionViewFlowLayout не дает возможности пропустить разрыв строки при начале нового раздела. Вам нужно написать пользовательский подкласс UICollectionViewLayout, который вычисляет атрибуты макета по-другому — в качестве альтернативы взгляните на RDHCollectionViewGridLayout, что обеспечивает именно это.

person DrMickeyLauer    schedule 23.11.2019

С помощью этого метода:

- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section;

Вы должны иметь возможность делать то, что хотите.

person Antoine Gamond    schedule 15.01.2013