Как связать отдельные группы с источниками данных в Compostional Layout? - PullRequest
0 голосов
/ 03 мая 2020

Что я пытаюсь реализовать

Я новичок в композиционном макете (и представлениях коллекции в целом) в Swift и не нашел примеров, похожих на то, что я пытаюсь сделать. Это изображение должно резюмировать, как должно выглядеть представление коллекции:

Intended final result

Разница в том, что у каждой группы есть свои собственные источники данных, например:

Группа 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)

...