1. UICollectionView 구조

1) UICollectionView

- 테이블뷰 처럼 Cell을 재활용하여 Layout의 규칙에 맞게 Cell을 배치한다

2) UICollectionReusableView

- 콜렉션뷰에서 사용되는 뷰의 슈퍼 클래스, Header, Footer, Cell등의 상위클래스이다

3) UICollectionViewCell

- 콜렉션뷰에서 사용되는 Cell의 객체, 테이블뷰의 Cell의 단점을 보완하며 구조가 많이 간단해짐

3) UICollectionViewLayoutAttributes

- Cell의 뷰의 정보를 정의한 모델 클래스, Cell의 크기, 위치, 중간값, 변형, 알파값 등의 정보를 가지고 있고 이 정보를 바탕으로 Cell이 반영된다

4) UICollectionViewLayout

- Cell의 위치에 대한 정보를 가지고 있는 클래스


2. UICollectionViewLayout

1) UICollectionViewFlowLayout

- UICollectionViewLayout을 상속 받은 클래스, Cell의 배치 방향을 Vertical, Horizontal등으로 상하, 좌우로 배치 시킬 수 있다

- UICollectionViewFlowLayout에서는 아이템에 대한 Size, 헤더 풋터에 대한 Size, inset 값을 정의하여 여백을 시작할 때 조정할 수 있다

- 또한 델리게이트 방식을 통하여 indexPath 값 마다 델리게이트를 호출하여 각 IndexPath에 대한 값을 정의 할 수 있다


2) CustomLayout

- Layout을 정의 할 때는 다음과 같은 메소드가 호출 된다

- (void)prepareLayout;

- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath

- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect

a. prepareLayout을 통해서 배치가 시작되기 전 기본적인 attributes의 값을 정의한다

- 전체 크기가 적은 양의 Cell을 배치하거나 위치가 고정일 경우 모든 Cell의 Attributes을 미리 생성하여 한다.

b. layoutAttributesForItemAtIndexPath를 통하여 각 indexPath에 대한 attributes를 반환한다

- 만약 동적으로 Cell에 대해 추가, 삭제가 일어나거나 많은 양의 Cell을 배치할 경우에는 이 메소드에서 위치를 계산하여 attributes를 반한환다

c. CollectionView 내 화면에 표현되고 있는 범위를 입력 받아 attributes의 배열을 반환한다.

- custom Layout일 경우 이 때 layoutAttributeForItemAtIndexPath메소드를 사용하여 배열로 생성하는 작업을 진행 한다.



2) Change Layout

3) Layout Animation

4) Layout Event Handle

+ Recent posts