CollectionViewLayout의 한 종류
Item들을 Group으로 -> Group들을 Section으로 -> 전체 Layout 구성
컬렉션 뷰에서 Item의 width 또는 height를 나타내는 클래스
class func fractionalWidth(_ fractionalWidth: CGFloat) -> Self
class func fractionalHeight(_ fractionalHeight: CGFloat) -> Self
class func estimated(_ estimatedDimension: CGFloat) -> Self
class func absolute(_ absoluteDimension: CGFloat) -> Self
정해진 형식에 따라 Item들을 배치하는 그룹
class func horizontal(
layoutSize: NSCollectionLayoutSize,
subitems: [NSCollectionLayoutItem]
) -> Self
layoutSize
크기로 subitems
배열의 항목들을 수평으로 나열된 Group을 생성vertical(layoutSize:subitems:)
-> 수직class func horizontal(
layoutSize: NSCollectionLayoutSize,
subitem: NSCollectionLayoutItem,
count: Int
) -> Self
layoutSize
크기로 subitem
을 count
만큼 수평으로 나열된 Group을 생성vertical(layoutSize:subitem:count:)
-> 수직Group을 모은 컨테이너
convenience init(group: NSCollectionLayoutGroup)
group
을 포함하는 Section을 생성var interGroupSpacing: CGFloat { get set }
var contentInsets: NSDirectionalEdgeInsets { get set }
init(top:leading:bottom:trailing:)
init(
top: CGFloat,
leading: CGFloat,
bottom: CGFloat,
trailing: CGFloat
)
section.contentInsets = NSDirectionalEdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0)
init(section: NSCollectionLayoutSection)
init(sectionProvider: @escaping UICollectionViewCompositionalLayoutSectionProvider)
sectionProvider
를 이용해 레이아웃 생성func createBasicListLayout() -> UICollectionViewLayout {
let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0),
heightDimension: .fractionalHeight(1.0))
let item = NSCollectionLayoutItem(layoutSize: itemSize)
let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0),
heightDimension: .absolute(44))
let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize,
subitems: [item])
let section = NSCollectionLayoutSection(group: group)
let layout = UICollectionViewCompositionalLayout(section: section)
return layout
}
참고 링크
UICollectionViewCompositionalLayout
init(section:)
init(sectionProvider:)
fractionalWidth(_:)
fractionalHeight(_:)
NSCollectionLayoutGroup
horizontal(layoutSize:subitem:count:)
interItemSpacing
NSCollectionLayoutSection
interGroupSpacing
init(group:)
contentInsets
NSDirectionalEdgeInsets