안녕하세요 오늘은 테이블뷰를 구성하는 방법에 대해 알아보아요
레쯔고!
테이블뷰는 많은 데이터를 효율적으로 보여주기 위한 리스트 UI 컴포넌트임!
화면에 보이는 셀만 메모리에 올리고, 스크롤할 때 재사용하면서 새로운 데이터를 표시함
전체 메커니즘
- UITableView: 뷰 컨트롤러 안에 들어가는 리스트 뷰임ㅇㅇ 테이블 뷰 자체는 데이터가 없음 → 데이터는 따로 전달해줘야 함
- DataSource 프로토콜:
테이블뷰가 몇 개의 셀이 필요한지, 각 셀에 어떤 데이터를 넣을지 묻는 인터페이스
꼭 구현해야 하는 2가지 메서드 있음:- numberOfRowsInSection: 몇 개의 셀이 필요한지 반환
- cellForRowAt: 각 셀에 어떤 내용을 표시할지 반환
- UITableViewCell: 셀 하나하나를 의미!
셀은 dequeueReusableCell을 통해 재사용됨
새로운 셀을 계속 만들면 비효율적이므로 이미 만들어진 셀을 재사용함 - Delegate 프로토콜: 셀이 선택됐을 때 어떤 반응을 보일지, 셀 높이는 얼마인지 등 행동과 외형을 정함
작동 흐름 예시
- 화면에 테이블 뷰가 나타남
- 테이블 뷰가 DataSource에게 몇 개의 셀을 그려야 하는지 묻고 (numberOfRowsInSection)
- 각 셀을 어떻게 그릴지 묻고 (cellForRowAt)
- 셀을 만들어 보여줌. 이때 dequeueReusableCell을 통해 셀을 재사용함
- 사용자가 스크롤하면 화면에서 사라진 셀은 메모리에서 보관되고, 새로운 셀을 그 자리에 재사용해서 표시함
핵심 정리
- UITableView = 껍데기
- DataSource = 데이터와 셀 구성 정보 제공자
- Delegate = 사용자 상호작용 응답
- Cell 재사용 = 성능 최적화의 핵심
'iOS > swift' 카테고리의 다른 글
[Swift] TableView의 모든 것을 알아보기!!! (0) | 2025.05.20 |
---|---|
[swift] 동기와 비동기 (0) | 2025.04.29 |
[swift] for - in과 forEach문에 대해 알아보자! (0) | 2025.04.29 |
[swift] 화면 전환 | push, present (0) | 2025.04.19 |
[iOS] ViewController의 생명주기 (0) | 2025.04.18 |