본문 바로가기
iOS/swift

[Swift] 테이블뷰 메커니즘 구성하는 법

by 23g 2025. 5. 10.

 

안녕하세요 오늘은 테이블뷰를 구성하는 방법에 대해 알아보아요

 

레쯔고!

 

테이블뷰는 많은 데이터를 효율적으로 보여주기 위한 리스트 UI 컴포넌트임!

화면에 보이는 셀만 메모리에 올리고, 스크롤할 때 재사용하면서 새로운 데이터를 표시함


전체 메커니즘

  1. UITableView: 뷰 컨트롤러 안에 들어가는 리스트 뷰임ㅇㅇ 테이블 뷰 자체는 데이터가 없음 → 데이터는 따로 전달해줘야 함
  2. DataSource 프로토콜:
    테이블뷰가 몇 개의 셀이 필요한지, 각 셀에 어떤 데이터를 넣을지 묻는 인터페이스
    꼭 구현해야 하는 2가지 메서드 있음:
    • numberOfRowsInSection: 몇 개의 셀이 필요한지 반환
    • cellForRowAt: 각 셀에 어떤 내용을 표시할지 반환
  3. UITableViewCell: 셀 하나하나를 의미!
    셀은 dequeueReusableCell을 통해 재사용됨
    새로운 셀을 계속 만들면 비효율적이므로 이미 만들어진 셀을 재사용함
  4. Delegate 프로토콜: 셀이 선택됐을 때 어떤 반응을 보일지, 셀 높이는 얼마인지 등 행동과 외형을 정함

작동 흐름 예시

  1. 화면에 테이블 뷰가 나타남
  2. 테이블 뷰가 DataSource에게 몇 개의 셀을 그려야 하는지 묻고 (numberOfRowsInSection)
  3. 각 셀을 어떻게 그릴지 묻고 (cellForRowAt)
  4. 셀을 만들어 보여줌. 이때 dequeueReusableCell을 통해 셀을 재사용함
  5. 사용자가 스크롤하면 화면에서 사라진 셀은 메모리에서 보관되고, 새로운 셀을 그 자리에 재사용해서 표시함

핵심 정리

  • UITableView = 껍데기
  • DataSource = 데이터와 셀 구성 정보 제공자
  • Delegate = 사용자 상호작용 응답
  • Cell 재사용 = 성능 최적화의 핵심