문제점:
Compositional Layout에서 Section을 가로로 스크롤링 되게 만들면 될 줄 알았는데 section이 계속 vertical로 쌓였음 ㅠㅠ
구글링 서치를 계속 해보다 아래 링크에서 section을 가로로 스크롤링 하는 방법을 찾아똬..!!
코드로 봐보자~
// 1. Configure layout section
private func testLayout() -> NSCollectionLayoutSection {
let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .fractionalHeight(1))
let item = NSCollectionLayoutItem(layoutSize: itemSize)
let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .estimated(145))
let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize, subitems: [item])
let section: NSCollectionLayoutSection = NSCollectionLayoutSection(group: group)
section.orthogonalScrollingBehavior = .continuous
return section
}
private func createLayout() -> UICollectionViewLayout {
// 2. Set scroll direction for layout section
let config = UICollectionViewCompositionalLayoutConfiguration()
config.scrollDirection = .horizontal
// 3. My section provider
let sectionProvider = { [weak self] (sectionIndex: Int, environment: NSCollectionLayoutEnvironment) -> NSCollectionLayoutSection? in
return self?.testLayout()
}
let layout = UICollectionViewCompositionalLayout(
sectionProvider: sectionProvider,
configuration: config
)
return layout
}
UICollectionViewCompositionalLayoutConfiguration 에서 section layout 가로 스크롤링을 설정할 수 있다!
그러고 빌드 해보니 섹션이 horizontal로 잘 들어감!!
여기까지만 하면 섹션 스크롤링이 continuous하게 됨. paging 애니메이션은 어디서 넣는걸까!?
.
.
.
그냥 컬렉션 뷰 내에서 isPagingEnabled = true 로만 설정해 주면 끝~~ 😀
private lazy var collectionView = UICollectionView(frame: .zero, collectionViewLayout: createLayout()).then {
...(생략)
$0.isPagingEnabled = true
}
글 잘 봤습니다.