TableView를 동작 방식과 화면에 Cell을 출력하기 위해 최소한 구현해야 하는 DataSource 메서드를 설명하시오.
TableView의 동작 방식과 화면에 Cell을 출력하기 위해 최소한 구현해야 하는 DataSource 메서드
UITableViewDelegate
•
UITableView Delegate 객체는 UITableViewDelegate 프로토콜을 채택한다.
•
UITableView Delegate는 모양과 동작을 관리하기에 (MVC, Model - View - Controller) 디자인 패턴중, Controller와 관련이 있다.
•
Delegate는 테이블 뷰의 시각적인 부분 수정, 행의 선택 관리, AccessoryView를 지원한다. 그리고 테이블 뷰의 개별 행 편집을 도와준다.
•
UITableViewDelegate 메서드느 위와 같다. (이 중 필수로 구현하는 메서드는 없다)
// 지정된 행이 선택 되었다는 걸 알리는 메서드
optional func tableView(UITableVIew, didSelectRowAt: IndexPath)
// 지정된 행이 선택해제 되었다는 걸 알리는 메서드
optional func tableView(UITableView, didDeselectRowAt: IndexPath)
// 특정 위치 행의 높이를 묻는 메서드
optional func tableView(UITableView, heightForRowAt: IndexPath)
Swift
복사
UITableViewDataSource
•
UITableView DataSource 객체는 UITableViewDataSource 프로토콜을 채택한다.
•
DataSource는 UITableView를 생성하고 수정하는데 필요한 정보를 UITableView 객체에 제공한다.
•
DataSource는 데이터 모델의 Delegate로, UITableView의 시각적 모양에 대한 최소한의 정보를 제공한다.
•
UITableView 객체에 섹션 수와 행의 수를 알려주며, 행의 삽입, 삭제 및 재정렬 하는 기능을 선택적으로 구현할 수 있다.
•
UITableViewDelegate 메서드와 다르게 UITableViewDataSource 필수 메소드는 optional 이라고 명시되어 있지 않다.
// 섹션에 표시할 행의 개수
func tableview(_ tableView: UITableView, numberOfRowInSection section: Int) -> Int
// 특정 위치에 표시할 셀을 요청하는 메서드
func tableview(_ tableView: UITableVIew, cellForRowAt indexPath: IndexPath) -> UITableViewCell
Swift
복사