UICompositionalLayout не работает должным образом (вертикальная прокрутка таблицы + горизонтальное разбиение на страницы) - PullRequest
0 голосов
/ 03 марта 2020

Я копался в «новом» API композиционного макета, представленном в iOS 13, в надежде найти решение надуманного подхода встраивания UITableView в UICollectionViewCell. В прошлом я использовал это решение, вызывающее головную боль, чтобы обеспечить горизонтальную прокрутку страницы с одновременной прокруткой вертикальной таблицы. Это очень громоздкий способ сделать что-то, и с тех пор, как было объявлено CompositionalLayout, я умираю, чтобы попытаться сделать рефакторинг.

Пока что не повезло. Я могу заставить горизонтальную прокрутку и вертикальную прокрутку работать, но не могу преодолеть поведение «App Store», когда каждая строка прокручивается горизонтально независимо. Кому-нибудь повезло с внедрением подобного решения?

Это мой код для CollectionViewLayout:

func createOrthogonalScrollingLayout() -> UICollectionViewLayout {


    let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .fractionalHeight(0.5))
    let item = NSCollectionLayoutItem(layoutSize: itemSize)

    let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .fractionalHeight(1.0))
    let group = NSCollectionLayoutGroup.vertical(layoutSize: groupSize, subitems: [item])

    let section = NSCollectionLayoutSection(group: group)
    section.orthogonalScrollingBehavior = .groupPagingCentered
    section.interGroupSpacing = 16
    section.contentInsets = NSDirectionalEdgeInsets(top: 0, leading: 16, bottom: 0, trailing: 16)


    let layout = UICollectionViewCompositionalLayout(section: section)

    return layout

}

. Это дает вертикальную прокрутку из двух элементов и горизонтальную прокрутку, которая показывает Остальные элементы на последующих страницах, но только два на страницу. Моя цель состоит в том, чтобы разделить «страницы» по дням года, и у каждого должно быть по X число элементов с вертикальной прокруткой.

enter image description here

Спасибо

...