UITableView?
- 여러 개의 Cell을 가지고 있고 하나의 열과 여러 줄의 행을 지니고 있으며, 수직으로만 스크롤이 가능하다.
- 섹션을 이용해 행을 그룹화하여 콘턴츠를 더 쉽게 탐색할 수 있다.
- 섹션의 헤더와 푸터에 View를 구성하여 추가적인 정보를 표시할 수 있습니다.
UITableViewDelegate
TableView의 시각적인 부분을 설정하고, 행의 Action 관리, AccessoryView 지원 그리고 TableView의 개별 행 편집을 도와준다.
Optional 함수
- didSelectRowAt: 행이 선택되었을 때 호출되는 메서드
- didEdselectRowAt: 행 선택이 해제되었을 때 호출되는 메서드
- heightForRowAt: 특정 위치 행의 높이를 묻는 메서드
- viewForHeaderInSection, viewForFooterInSection: 지정된 Section의 HeaderView, FooterView에 표시할 View가 어떤 건지 묻는 메서드
- heightForHeaderInSection, heightForFooterInSection: 지정된 Section의 HeaderView, FooterView의 높이를 묻는 메서드
- willBeginEditingRowAt: TableView가 편집 모드로 들어갔을 때 호출되는 메서드
- didEndEditingRowAt: TableView가 편집 모드에서 빠져 나왔을 때 호출되는 메서드
- willDisplay: TableView가 Cell을 사용하여 행을 그리기 직전에 호출되는 메서드
- didEndDisplaying: TableView로부터 Cell이 화면에 사라지면 호출되는 메서드
UITableViewDatasource
TableView를 생성하고 수정하는데 필요한 정보를 TableView 객체에 제공
필수로 구현해야 하는 함수
- numberOfRowsOnSection: 각 Section에 표시할 행의 개수를 리턴하는 메서드
- cellForRowAt: 특정 index Row의 Cell에 대한 정보를 넣어 Cell을 반환하는 메서드
Optional 함수
- numberOfSections: 총 Section 개수를 묻는 메서드
- titleForHeaderInSection: 특정 Section의 Header Title을 묻는 메서드
- titleForFooterInSection: 특정 Section의 Footer Title을 묻는 메서드
- canEditRowAt: 특정 위치의 행이 편집 가능한지 묻는 메서드
- canMoveRowAt: 특정 위치의 행을 재정렬 할 수 있는지 묻는 메서드
- sectionIndexTitles: TableView Section Index Title을 묻는 메서드
- sectionForSectionIndexTitle: Index에 해당하는 Section을 알려주는 메서드
- editingStyle: 스와이프 모드, 편집 모드에서 버튼을 선택하면 호출되는 메서드(특정 메서드에서는 행에 변경사항을 Commit 해야 함)
- moveRowAt: 행이 다른 위치로 이동되면 어디에서 어디로 이동했는지 알려주는 메서드