[iOS/Swift] UICollectionLayoutListConfiguration(.plain)에 헤더를 넣었을 때 헤더위에 뭔가 여백이 생기는 경우

김혜수·2022년 9월 26일
0

문제의 코드


 private func createLayout(isShowingHeaderView: Bool) -> UICollectionViewLayout {
        let sectionProvider = { (sectionIndex: Int, layoutEnvironment: NSCollectionLayoutEnvironment) -> NSCollectionLayoutSection? in

            var config = UICollectionLayoutListConfiguration(appearance: .plain)
            config.showsSeparators = false
            config.headerMode = .supplementary

            let section = NSCollectionLayoutSection.list(
                using: config,
                layoutEnvironment: layoutEnvironment
            )
            
            let headerSize = NSCollectionLayoutSize(
                widthDimension: .fractionalWidth(1.0),
                heightDimension: .absolute(isShowingHeaderView ? 78: 10))
            let header = NSCollectionLayoutBoundarySupplementaryItem(
                layoutSize: headerSize,
                elementKind: UICollectionView.elementKindSectionHeader,
                alignment: .top)
            section.boundarySupplementaryItems = [header]
           
            config.headerTopPadding = 0
            
            return section
        }
        let config = UICollectionViewCompositionalLayoutConfiguration()
        return UICollectionViewCompositionalLayout(sectionProvider: sectionProvider, configuration: config)
    }

여기서

config.headerMode = .supplementary

이게 문제였다

이걸 .none으로 바꿔주니 여백이 사라졌다
여백은 보니까 한 22정도 였음

해결

config.headerMode = .none
profile
iOS를 좋아하는 사람

2개의 댓글

comment-user-thumbnail
2022년 9월 28일

정말 큰 도움이 됐어요 감사합니다 !!

1개의 답글