내일배움캠프 7기 Day82 TIL

Daisy Kim·2023년 11월 7일
0

🧃 MVC 프로그래밍 디자인 패턴과 UITableView

테이블 뷰를 사용하기 위해서는 UITableViewDataSource, UITableViewDelegate 두 객체가 반드시 필요하다.

오늘은 이 두가지 객체의 역할에 대해서 알아보자.
도대체 이들은 테이블 뷰에서 각각 어떠한 기능을 담당하는걸까?

🍎 UITableViewDelegate

테이블 뷰의 동작과 모양을 관리 - MVC 패턴의 C(Controller)의 역할

  • 테이블 뷰의 시각적인 부분 수정
  • 행 선택관리, 개별 행 수정, 액세서리 뷰 지원
  • 테이블 뷰의 세세한 부분을 조정 가능

Delegate의 모든 메서드는 필요시 사용하면 되는 선택사항이다.

🍎 UITableViewDataSource

테이블 뷰에 필요한 정보를 제공 - MVC 패턴의 M(Model)의 역할

  • 테이블 뷰의 생성 및 수정시 필요한 정보 제공
  • 테이블 뷰 시각적 형태에 관한 최소한의 정보 제공
  • 섹션과 행의 수를 알려줌, 행 삽입, 삭제 및 재정렬 기능을 선택적 구현 가능

모든 메서드가 선택사항인 Delegate와 달리 DataSource에는 필수로 두가지 메서드를 구현해줘야한다.

구현해야하는 필수 메서드

@required
// 🍏 특정위치에 표시할 셀을 요청하는 메서드
func tableView(UITableView, CellForRowAt: IndexPath)

// 🍏 각 섹션에 표시할 행의 개수를 묻는 메서드
func tableView(UITableView, NumberOfRowsInSection: Int)

*@required : 테이블 뷰를 만들기 위해서 반드시 구현 필요(해당 프로토콜을 채택했으면 필수로 구현해야하는 함수)

최종적으로 UITableView는 MVC 패턴의 V(View)의 역할을 함으로써 완전한 MVC 패턴구조를 이루게 된다.

메서드 모음 참고블로그

profile
Technology proderit homini

0개의 댓글