250x250
반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

스윞한 개발자

IOS - UICollectionView 본문

Swift 이론

IOS - UICollectionView

스윞남 2024. 1. 30. 00:33
728x90
반응형
SMALL

 

 

이번 포스팅에서는 UICollectionView에 대해 정리해보겠습니다.

 

UICollectionView란?

1. Grid 형 UI를 구현할 수 있는 수단

2. 메모리절약을 위해 view를 재사용 함

3. Delegate 패턴을 활용하여, delegate/dataSource를 구현하여 UI 구현

4. UICollectionViewLayout을 상속하여 UI의 배치를 선언 할 수 있음

>> 기본으로 제공되는 것 : UICollectionViewFlowLayout, UICollectionViewCompositionalLayout !!

 

UICollectionView를 위와 같이 간단하게 4가지로 정의할 수 있습니다!

4번의 특징이 UITableView와 가장 큰 차이점이라고 볼 수 있습니다. 테이블 뷰는 사용자가 위 아래의 높이만 지정 할 수 있고 이외의 레이아웃에는 관여를 하지 않지만 UICollectionView는 지정 가능합니다.

 

>> 이렇기에 컬렉션 뷰는 가로로 표현이 가능하게 됩니다!

 

간단하게 알아본 특징들을 좀 더 자세하게 알아보겠습니다.

 

특징

  1. Cells (셀):
    • 각 아이템은 UICollectionViewCell이라는 클래스의 인스턴스입니다. 셀은 데이터의 특정 부분을 표시하고 사용자와 상호작용할 수 있습니다.
  2. Sections (섹션):
    • UICollectionView는 섹션으로 구성되며, 각 섹션은 하나 이상의 아이템을 포함합니다. 섹션은 UICollectionViewDataSource 프로토콜을 통해 데이터를 제공하고 관리합니다.
  3. FlowLayout:
    • UICollectionViewFlowLayout은 가장 일반적으로 사용되는 레이아웃 클래스로, 그리드 형태의 레이아웃을 제공합니다. 다양한 옵션을 통해 아이템의 크기, 간격, 그룹화 등을 조절할 수 있습니다.
  4. DataSource:
    • UICollectionViewDataSource 프로토콜을 채택하여 데이터를 제공하고 각 섹션 및 아이템의 수를 설정합니다. 이를 통해 UICollectionView는 필요한 데이터를 가져와 적절한 위치에 표시합니다.
  5. Delegate:
    • UICollectionViewDelegate 프로토콜을 사용하여 사용자의 상호작용에 응답하고 셀의 선택, 강조 표시 등을 관리할 수 있습니다.
  6. Supplementary Views:
    • 섹션 헤더 또는 푸터와 같은 부가적인 뷰를 제공할 수 있습니다. UICollectionViewDelegateFlowLayout 프로토콜을 통해 이러한 뷰들의 크기와 간격을 조절할 수 있습니다.
  7. Cell Reuse:
    • 셀 재사용을 통해 화면에 현재 표시되는 셀만 메모리에 로드하고 재활용하여 효율적인 메모리 관리를 할 수 있습니다.
  8. Custom Layouts:
    • UICollectionViewLayout 클래스를 서브클래싱하여 사용자 정의 레이아웃을 만들 수 있습니다. 이를 통해 원하는 형태의 레이아웃을 만들어 사용할 수 있습니다.

 

 

 

반응형

참고 :

https://developer.apple.com/documentation/uikit/uicollectionview

 

UICollectionView | Apple Developer Documentation

An object that manages an ordered collection of data items and presents them using customizable layouts.

developer.apple.com

 

728x90
반응형
LIST

'Swift 이론' 카테고리의 다른 글

Swift - GCD  (0) 2024.04.11
Swift - MVC to MVVM 개념정리/클린아키텍쳐(Swift UIkit Fundamental)  (0) 2024.02.06
SwiftUI의 Property Wrappers  (0) 2024.01.29
SwiftUI란?  (0) 2024.01.29
Swift 기초 문법 - 자료형 체크  (0) 2024.01.29