[iOS] UICollectionView

조정미·2024년 6월 28일

자습 일지

목록 보기
6/7
post-thumbnail

UICollectionView는 여러 데이터를 관리하고 커스텀 가능한 레이아웃을 사용해서 유저에게 보여줄 수 있는 객체이다. (UIScrollView를 상속받고 있음)

컬렉션뷰는 테이블뷰처럼 UICollectionViewCell을 사용해 데이터를 화면에 표시하는데 이외에도 Section header, footer등의 Supplementary view를 지원한다.


UICollectionView

유연하고 변경 가능한 레이아웃을 사용하여 데이터 아이템의 정렬된 세트를 표시하는 수단이다. 컬렉션뷰의 가장 일반적인 용도는 데이터 아이템을 그리드와 같은 형태로 표햔하며, 다양한 방법으로 컬렉션 뷰의 레이아웃은 사용자 정의 가능


이미지 출처: 부스터 코스


컬렉션뷰의 구성요소


이미지 출처: 부스터 코스

  • cell(셀) : 컬렉션뷰의 주요 콘텐츠를 표시함
    (UICollectionViewCell 클래스의 인스턴스, UICollectionViewCell를 상속받은 클래스의 인스턴스)
  • Supplemantary view (보충 뷰) : 섹션에 대한 정보를 표시하는데 셀과 달리 보충 뷰는 필수가 아니고, 사용법과 배치 방식은 사용되는 레이아웃 객체가 제어하게 된다 (헤더와 푸터를 예시로 둘 수 있다)
  • Decoration views (데코레이션 뷰) : 콘텐츠가 스크롤되는 컬렉션 뷰에 대한 배경을 꾸밀 때 사용한다 레이아웃 객체는 데코레이션 뷰를 사용해서 커스텀 배경을 구현할 수 있다

컬렉션 뷰의 레이아웃

  • 레이아웃
  1. UICollectionViewLatout의 서브클래스는 레이아웃 객체라고 하며, 컬렉션 뷰 내부의 셀 및 재사용 가능한 뷰의 위치, 크기 및 시각적 속성을 정의한다.
  2. UICollectionViewLayoutAttibute는 레이아웃 프로세스 중에 컬렉션 뷰의 셀과 재사용 가능한 뷰를 표시하는 위치와 방법을 알려준다.
  3. 레이아웃 객체 아이템이 삽입, 삭제, 혹은 컬렉션 뷰 내에서 이동할 때마다 레이아웃 객체는 UICollectionViewUpdateItem 클래스의 인스턴스를 받는다.
  • 플로우 레이아웃
    UICollectionViewFlowLayout / UICollectionViewDelegateFlowLayout protocol
    그리드 혹은 다른 라인 기반 래이아웃을 구현하는데 사용된다. 클래스를 그대로 사용하거나 동적으로 커스터마이징할 수 있는 플로우 델리게이트 객체와 함께 사용할 수 있다.

0개의 댓글