https://developer.apple.com/documentation/uikit/uicollectionviewflowlayout
"A layout object that organizes items into a grid with optional header and footer views for each section."
각 섹션에 선택적인 헤더 및 footer 뷰와 함께 아이템을 그리드로 조직화하는 레이아웃 객체입니다.
@MainActor class UICollectionViewFlowLayout : UICollectionViewLayout
flow layout은 컬렉션 뷰 레이아웃의 타입입니다. 컬렉션 뷰에 있는 아이템은 하나의 행 혹은 열(스크롤링 방향에 따라)로부터 다음으로 흐름이며, 각 행은 채울 수 있을 만큼의 셀을 포함합니다. 셀은 같은 크기일 수 있고 다른 크기일 수도 있습니다.
flow layout은 각 섹션 및 그리드에 있는 아이템, 헤더, footer의 크기를 결정하기 위해 컬렉션 뷰의 딜리게이트 객체에서 작동합니다. 딜리게이트 객체는 UICollectionViewDelegateFlowLayout
프로토콜을 따라야 합니다. 이 딜리게이트의 사용은 레이아웃 정보를 동적으로 조정할 수 있도록 해줍니다. 예를 들어 그리드에서 아이템들의 다른 크기를 구체화하기 위해 딜리게이트 객체를 사용할 수 있습니다. 딜리게이트를 제공하지 않으면 flow layout은 이 클래스의 속성에서 설정한 기본값을 사용합니다.
flow layout은 방향에서 고정된 거리와 다른 방향에서 스크롤 가능한 거리를 사용해 컨텐트를 위치시킵니다. 예를 들어 수직 스크롤링 그리드에서 그리드 컨텐트의 넓이는 상응하는 컬렉션 뷰의 넓이에 제약이 되고, 컨텐트의 높이는 그리드에 있는 섹션 및 아이템 수에 일치하도록 동적으로 조정됩니다. 레이아웃운 기본값으로 수직 스크롤링이지만, scrollDirection
속성을 사용해서 스크롤 방향을 설정할 수 있습니다.
flow layout의 각 섹션은 고유한 커스텀 헤더 및 footer를 가질 수 있습니다. 헤더 혹은 footer를 설정하려면 헤더ㅗ 혹은 footer의 크기를 0이 아닌 값으로 설정해야 합니다. 적합한 딜리게이트 메소드르 구현하거나 headerReferenceSize
및 footerReferenceSize
속성에 적합한 값을 할당하시기 바랍니다. 헤더 혹은 footer 크기가 0이면 상응하는 뷰는 컬렉션 뷰에 추가되지 않습니다.
flow layout을 사용해서 나타날 수 있는 보완 뷰의 타입을 구체화하는 상수입니다.
https://developer.apple.com/documentation/uikit/uicollectionviewflowlayout/flow_layout_supplementary_views
https://velog.io/@panther222128/Flow-Layout-Supplementary-Views
컬렉션 뷰의 레이아웃 정보를 생성하기 위한 추상 베이스 클래스입니다.
https://developer.apple.com/documentation/uikit/uicollectionviewlayout
https://velog.io/@panther222128/UICollectionViewLayout
컬렉션 뷰에서 하나의 레이아웃으로부터 다른 레이아웃으로 변경될 때 동작을 구현할 수 있도록 해주는 레이아웃 객체의 특별한 타입입니다.
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