Пользовательские рамки элементов в новых UICollectionViews (2019+) - PullRequest
0 голосов
/ 18 апреля 2020

Как я могу присвоить (разные) CGFame каждой отдельной ячейке в новом UICollectionView (2019+), чтобы расположить и изменить их размер в горизонтально прокручиваемой группе / разделе?

Пример

Ячейки представляют события на горизонтально прокручиваемой временной шкале, временная шкала проходит линейно от x = 0 до x = 100, затем ячейки могут быть расположены в x = 3 с шириной 7, другая ячейка в x = 20 с w = 10, другой при x = 46 с w = 21 и т. Д. c ... некоторые могут даже перекрываться.

Приложение

На основе Видео Пола Хадонса о новых видах коллекций Я пытаюсь переделать функцию createSection (), чтобы обеспечить фрейм для каждой указанной c ячейки, поэтому я не буду использовать какие-либо стандартные макеты ( как Flow Layout). В частности, я заинтригован по поводу использования NSCollectionLayoutGroup

    func createSection() -> NSCollectionLayoutSection {
        let itemSize = NSCollectionLayoutSize(widthDimension: .absolute(300), heightDimension: .absolute(300))
        let layoutItem = NSCollectionLayoutItem(layoutSize: itemSize)
        layoutItem.contentInsets = NSDirectionalEdgeInsets(top: 40, leading: 40, bottom: 40, trailing: 40)

        let layoutGroup = NSCollectionLayoutGroup.horizontal(layoutSize: itemSize, subitems: [layoutItem])

        let layoutSection = NSCollectionLayoutSection(group: layoutGroup)
        layoutSection.orthogonalScrollingBehavior = .continuous      
        return layoutSection
    }

В документации Apple говорится, что я могу выбрать использование .custom вместо .hortical макета для NSCollectionLayoutGroup. Это позволило бы мне установить кадр для каждой указанной ячейки c. Но как это должно быть реализовано? Я полагаю, что Apple опубликовала пример кода для всех других опций, кроме .custom.

...