Использование UICollectionView с вложенными разделами (стекирование заголовков) - PullRequest
0 голосов
/ 28 ноября 2018

Я портирую свое веб-приложение на iOS с помощью Swift 4, и мне нужно отобразить список, который содержит несколько вложенных «разделов», где каждый раздел имеет свой собственный заголовок.

Мой инстинкт должен был использовать UICollectionFlowLayout , но быстро обнаружил, что он ограничен глубиной один.Погружаясь дальше, полагая, что мне просто нужно создать пользовательский макет, я вижу, что протокол IOCollectionViewDataSource на самом деле предполагает глубину единицы.

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

Есть ли общий способ сделать это в UIKit?

Example of stacking headers from nested section list.

1 Ответ

0 голосов
/ 28 ноября 2018

Почему бы не использовать вложенный UICollectionView с пользовательской разметкой потока, если вы хотите, чтобы пользовательский интерфейс соответствовал способу, которым вы поделились в вопросе?

По идее,

UICollectionView (top)-> DataSource = [Headers: [dataSourceBelowTop]]
     UICollectionView (inner) -> DataSource = dataSourceBelowTop

Возьмите примериз приведенного выше случая:

DataSourceTop is = ["Mission Gorge": ["Middle Earth": [SomeCustomModel]]]

Первой задачей было бы создание UICollectionView верхнего уровня, а затем у каждого collectionView будет другое представление коллекции.Теперь для прокрутки вам нужно поиграть с flowLayout, который можно объяснить в другом потоке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...