Что я пытаюсь реализовать
Я новичок в композиционном макете (и представлениях коллекции в целом) в Swift и не нашел примеров, похожих на то, что я пытаюсь сделать. Это изображение должно резюмировать, как должно выглядеть представление коллекции:
Разница в том, что у каждой группы есть свои собственные источники данных, например:
Группа 1 под названием «Фрукты» сопоставляет массив фруктов с элементами и отображает их в метке (используя пользовательскую ячейку с простой меткой), где количество элементов является переменным. Группа будет расширяться по горизонтали, чтобы вместить необходимое количество элементов;
Группа 2 под названием «Овощи» отображает массив овощей на элементы и отображает их аналогичным образом, где количество элементов является переменным. и группа расширилась бы, чтобы уместить элементы в простом сеточном макете.
Я стараюсь не вкладывать представление коллекции в Раздел 1, потому что это затрудняет поддержание обзора того, как вход данные передаются вниз.
Чего я достиг к настоящему моменту
1) Создал настраиваемую ячейку представления коллекции с соответствующими свойствами.
2) Настройте основные методы c (numberOfItemsInSection
, numberOfSections
, cellForItemAt
) и макет базы c как:
func createLayoutSection() -> UICollectionViewLayout {
let layout = UICollectionViewCompositionalLayout { (sectionIndex: Int, layoutEnvironment: NSCollectionLayoutEnvironment) -> NSCollectionLayoutSection? in
// Formatting the groups and items
return section
}
return layout
}
Что я не смог сделать
1) Найдите способ доступа к отдельным группам в cellForItemAtIndexPath
.
2) Отформатируйте группы, как показано на рисунке выше.
Буду признателен за любые предложения.
(Swift 4, iOS 13)