← Lab
UICollectionViewCompositionalLayout
스터디2025.08.06
- UIKit
- Swift
UICollectionViewCompositionalLayout에 대해
UICollectionViewCompositionalLayout | Apple Developer Documentation
UICollectionViewCompositionalLayout은 iOS 13+ 에서 사용 가능하다.UICollectionViewCompositionalLayout은 iOS에서UICollectionView를 위한 엄청 유연한 객체!
주요 특징
- Layout은
Item,Group,Section의 계층 구조로 구성된다.

Item은 컬렉션뷰의 가장 작은 단위인Cell을 뜻한다.Group은 여러 Item을 묶은 단위.Group에서 수평, 수직 등의 지정 방향으로 배치할 수 있다.Section은 여러Group을 묶은 단위이며헤더혹은푸터와 같은 SubView를 가질 수 있다.CompositionalLayout은 섹션 별로 서로 다른 레이아웃 구성이 가능하다.
→ 하나의 UICollectionView 내에서 다양하고 복잡한 레이아웃을 동시에 구현할 수 있다!
- 크기 지정은
고정(absolute),추정(estimated),비율(fractional)방식이 모두 가능하다.
→ 특히 화면 크기에 비례하는 비율 지정이 매우 편리!
⭐ CompositionalLayout 은 하나의 CollectionView에 섹션별로 다른 Layout을 구성하기가 쉬운 장점이 있다.
크기 지정 - NSCollectionLayoutDimension
NSCollectionLayoutDimension | Apple Developer Documentation
위에서 설명한 것과 같이 CompositionalLayout 은 고정(absolute), 추정(estimated), 비율(fractional) 방식을 통해 크기 지정을 할 수 있다.
-
고정(.absolute) - 고정 크기를 갖는다.
let absoluteSize = NSCollectionLayoutSize( widthDimension: .absolute(32), heightDimension: .absolute(32) ) -
추정(.estimated) - 런타임 때 변경된다.
let estimatedSize = NSCollectionLayoutSize( widthDimension: .estimated(120), heightDimension: .estimated(120) ) -
비율(.fractional) - 비율
let fractionalSize = NSCollectionLayoutSize( widthDimension: .fractionalWidth(0.2), heightDimension: .fractionalHeight(0.2) )