https://developer.apple.com/documentation/uikit/views_and_controls/collection_views/layouts
"Arrange your collection view content in a highly configurable layout."
고수준으로 설정 가능한 레이아웃에 컬렉션 뷰 컨텐트를 정렬합니다.
컬렉션 뷰 레이아웃은 컬렉션에서 컨텐트의 시각적 정렬을 정의합니다. 레이아웃은 컨텐트에 대해 간단한 형태에서 복잡한 형태까지 모든 종류의 정렬을 생성할 수 있도록 유연하게 디자인되어 있습니다. 컬렉션 뷰 레이아웃의 가장 간단한 유형은 그리드에 아이템을 표시하는 것입니다. 동시에 원하는 형태로 아이템을 정렬하기 위해 레이아웃을 정의할 수도 있습니다. 예를 들어 원 안에 혹은 다양한 크기 안에 아이템이 정렬되는 레이아웃을 생성할 수도 있습니다. 또한, 런타임 시점에 사용자가 기기를 회전하는 경우처럼 필요한 상황마다 아이템을 다르게 나타나도록 동적인 레이아웃 변경이 가능합니다.
컬렉션 뷰 레이아웃은 커스텀 가능하고 고수준의 시각적 레이아웃입니다. 예를 들어 앱 스토어 앱은 섹션마다 커스텀 레이아웃을 갖는 하나의 컬렉션 뷰를 갖고 있어 다양한 컨텐트를 보여주고 있습니다.
디자인 가이드는 Human Interface Guidelines를 보시기 바랍니다.
Human Interface Guidelines
https://developer.apple.com/design/human-interface-guidelines/ios/views/collections/
적응형이면서 유연한 시각적 정렬로 아이템을 조합할 수 있도록 하는 레이아웃 객체입니다.
https://developer.apple.com/documentation/uikit/uicollectionviewcompositionallayout
https://velog.io/@panther222128/UICollectionViewCompositionalLayout
컬렉션 뷰 레이아웃의 가장 기본적인 컴포넌트입니다.
https://developer.apple.com/documentation/uikit/nscollectionlayoutitem
https://velog.io/@panther222128/NSCollectionLayoutItem
경로에 따라 아이템을 위치시키는 아이템 집합에 대한 컨테이너 입니다.
https://developer.apple.com/documentation/uikit/nscollectionlayoutgroup
https://velog.io/@panther222128/NSCollectionLayoutGroup
그룹의 집합을 구분되는 시각적 그룹화로 결합하는 컨테이너입니다.
https://developer.apple.com/documentation/uikit/nscollectionlayoutsection
https://velog.io/@panther222128/NSCollectionLayoutSection
컬렉션 뷰에 있는 아이템 크기(넓이 혹은 높이)의 개별적인 차원입니다.
https://developer.apple.com/documentation/uikit/nscollectionlayoutdimension
https://velog.io/@panther222128/NSCollectionLayoutDimension
컬렉션 뷰에 있는 아이템의 넓이 및 높이입니다.
https://developer.apple.com/documentation/uikit/nscollectionlayoutsize
https://velog.io/@panther222128/NSCollectionLayoutSize
컬렉션 뷰에 있는 아이템 사이 혹은 주변 간격을 정의하는 객체입니다.
https://developer.apple.com/documentation/uikit/nscollectionlayoutspacing
https://velog.io/@panther222128/NSCollectionLayoutSpacing
컬렉션 뷰에 있는 아이템의 모서리 주변 간격을 정의하는 객체입니다.
https://developer.apple.com/documentation/uikit/nscollectionlayoutedgespacing
https://velog.io/@panther222128/NSCollectionLayoutEdgeSpacing
레이아웃에서 스크롤 방향, 섹션 간격, 헤더 혹은 footer를 정의하는 객체입니다.
https://developer.apple.com/documentation/uikit/uicollectionviewcompositionallayoutconfiguration
https://velog.io/@panther222128/UICollectionViewCompositionalLayoutConfiguration
컬렉션 뷰에 있는 아이템에 보완적 아이템을 추가하는 방법을 정의하는 객체입니다.
https://developer.apple.com/documentation/uikit/nscollectionlayoutanchor
https://velog.io/@panther222128/NSCollectionLayoutAnchor
컬렉션 뷰에 있는 아이템에 badge 혹은 프레임과 같은 추가적인 시각적 장식을 더하기 위해 사용되는 객체입니다.
https://developer.apple.com/documentation/uikit/nscollectionlayoutsupplementaryitem
https://velog.io/@panther222128/NSCollectionLayoutSupplementaryItem
컬렉션 뷰에 헤더 혹은 footer를 추가하기 위해 사용되는 객체입니다.
https://developer.apple.com/documentation/uikit/nscollectionlayoutboundarysupplementaryitem
https://velog.io/@panther222128/NSCollectionLayoutBoundarySupplementaryItem
컬렉션 뷰의 섹션에 백그라운드를 추가하기 위해 사용되는 객체입니다.
https://developer.apple.com/documentation/uikit/nscollectionlayoutdecorationitem
https://velog.io/@panther222128/NSCollectionLayoutDecorationItem
커스텀 레이아웃 정렬로 그룹에서 사용되는 아이템입니다.
https://developer.apple.com/documentation/uikit/nscollectionlayoutgroupcustomitem
https://velog.io/@panther222128/NSCollectionLayoutGroupCustomItem
컬렉션 뷰에서 아이템에 대한 하나의 변경사항을 설명하는 객체입니다.
https://developer.apple.com/documentation/uikit/uicollectionviewupdateitem
https://velog.io/@panther222128/UICollectionViewUpdateItem
컬렉션 뷰에서 포커스 업데이트에 대해 구체적인 정보를 저장하는 컨텍스트 객체입니다.
https://developer.apple.com/documentation/uikit/uicollectionviewfocusupdatecontext
https://velog.io/@panther222128/UICollectionViewFocusUpdateContext
레이아웃이 무효화될 때 레이아웃의 어떤 부분이 업데이트될 필요가 있는지를 선언하는 컨텍스트 객체입니다.
https://developer.apple.com/documentation/uikit/uicollectionviewlayoutinvalidationcontext
https://velog.io/@panther222128/UICollectionViewLayoutInvalidationContext
컬렉션 뷰의 레이아웃 정보를 생성하기 위한 추상 베이스 클래스입니다.
https://developer.apple.com/documentation/uikit/uicollectionviewlayout
https://velog.io/@panther222128/UICollectionViewLayout
각 섹션에 선택적인 헤더 및 footer 뷰와 함께 아이템을 그리드로 조직화하는 레이아웃 객체입니다.
https://developer.apple.com/documentation/uikit/uicollectionviewflowlayout
https://velog.io/@panther222128/UICollectionViewFlowLayout
컬렉션 뷰에서 하나의 레이아웃으로부터 다른 레이아웃으로 변경될 때 동작을 구현할 수 있도록 해주는 레이아웃 객체의 특별한 타입입니다.
https://developer.apple.com/documentation/uikit/uicollectionviewtransitionlayout
https://velog.io/@panther222128/UICollectionViewTransitionLayout
컬렉션 뷰에서 주어진 아이템에 대한 레이아웃 관련 특성을 관리하는 레이아웃 객체입니다.
https://developer.apple.com/documentation/uikit/uicollectionviewlayoutattributes
https://velog.io/@panther222128/UICollectionViewLayoutAttributes
아이템의 크기를 다시 계산할지 혹은 레이아웃에서 위치를 다시 계산할지 결정하는 속성의 집합입니다.
https://developer.apple.com/documentation/uikit/uicollectionviewflowlayoutinvalidationcontext
https://velog.io/@panther222128/UICollectionViewFlowLayoutInvalidationContext