Заголовок UICollectionView Compositional Layout с pinToVisibleBounds странным образом скрыт ячейками
Я использую композиционный макет UICollectionView и хочу, чтобы заголовок прилипал к верхнему краю
это должно быть возможно с
header.pinToVisibleBounds = true
однако во время прокрутки заголовок странным образом затемняется, выглядит как ошибка... кроме того, похоже, что только ячейки, которые были за пределами видимого экрана, при перезагрузке закрывают заголовок
вы можете увидеть это в этом видео https://www.dropbox.com/s/n5myzfceuiwzb39/stackru-unsatable-header.mov?dl=0
вот как построен весь макет
func buildLayout() -> UICollectionViewCompositionalLayout {
// cells
let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(0.5), heightDimension: .absolute(90))
let item = NSCollectionLayoutItem(layoutSize: itemSize)
item.contentInsets = NSDirectionalEdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0)
let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .absolute(90))
let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize, subitem: item, count: 2)
group.contentInsets = NSDirectionalEdgeInsets(top: 0, leading: 20, bottom: 0, trailing: 20)
group.interItemSpacing = .fixed(10)
let section = NSCollectionLayoutSection(group: group)
section.interGroupSpacing = 10
section.contentInsets = NSDirectionalEdgeInsets(top: 20, leading: 0, bottom: 20, trailing: 0)
// header
let headerSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .absolute(200))
let header = NSCollectionLayoutBoundarySupplementaryItem(layoutSize: headerSize, elementKind: UICollectionView.elementKindSectionHeader, alignment: .top)
header.pinToVisibleBounds = true
header.zIndex = Int.max
section.boundarySupplementaryItems = [header]
let configuration = UICollectionViewCompositionalLayoutConfiguration()
return UICollectionViewCompositionalLayout(section: section, configuration: configuration)
}
Какое обходное решение? или какой еще метод иметь "плавающий" заголовок?
ПРИМЕЧАНИЕ 1:
похоже, когда заголовок прикреплен к configuration.boundarySupplementaryItems
он ведет себя так, как ожидалось... через это может быть решение текущего случая, это не решает общую проблему с разделом... (вы также должны установить zIndex на очень большое число)
do {
center.contentInsets.top = 0
let headerSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .absolute(200))
let header = NSCollectionLayoutBoundarySupplementaryItem(layoutSize: headerSize, elementKind: UICollectionView.elementKindSectionHeader, alignment: .top)
header.pinToVisibleBounds = true
header.zIndex = Int.max // !!! IMPORTANT
//header.extendsBoundary = true
configuration.boundarySupplementaryItems = [header]
}