이전에 공부하던 부분부터 이어서 플레이할 수 있습니다.
이어서 보기 처음부터 보기

다이나믹 테이블 뷰가 우리가 배워야 하는 진짜 테이블 뷰.

스태틱은 가끔 그런 식으로 쓸 때도 있다. 또는 간략하게 앱을 프로토타입 해 볼 때 사용.
애초에 스태틱이 나오게 된 것도 테이블 뷰를 표시하기가 그만큼 어렵기 때문.

테이블 뷰가 여타 다른 UI들과 다른 부분은 우리가 직접 값을 넣어주는 게 아니라 테이블 뷰의 응답에 대응하는 방식으로 표시한다는 것이다.

레이블에는 직접 String을 넣어주면 되고, 이미지 뷰에는 직접 UIImage 오브젝트를 넣어주면 된다. 하지만 테이블 뷰는 우리가 직접 셀을 꾸며서 넣어주는 방식이 아니라 테이블 뷰의 요청에 대한 응답을 준비하는 방식으로 표시한다.

테이블 뷰의 표시 방법을 알아보자.

다이나믹 테이블 뷰의 동작 방식

  1. 테이블 뷰가 리로드될 때 자신을 뿌릴 책임을 진 데이터소스에게 섹션의 갯수를 물어본다.
  2. 각 섹션에 필요한 로우의 갯수를 물어본다.
  3. 각 로우에 뿌릴 테이블 뷰 셀을 만들어 달라고 요청한다.

왜 테이블 뷰는 이런 방식으로 표시할까?

테이블 뷰의 속성에 대해 생각해 보자. 테이블 뷰는 유사한 형태의 뷰가 반복적으로 엄청 많이 표시될 것을 전제로 디자인된 뷰 오브젝트이다.

예를 들어 10개 섹션에 섹션당 1~200개의 셀을 가진 테이블 뷰가 있다고 가정하자.

화면에 테이블 뷰가 나타날 때 3번 섹션의 85번 셀부터 95번 셀까지 표시될 예정이라면 다른 영역의 데이터는 필요 없이 해당 셀을 표시할 수 있는 데이터만 필요할 것이다.

이것은 우리가 직접 알 수 있는 정보는 아니며, 테이블 뷰가 화면을 갱신하면서 스스로 판단할 수 있는 정보이다. 그래서 테이블 뷰가 데이터와 뷰를 요청하고 우리는 거기에 응답하는 방식으로 테이블 뷰가 업데이트되는 것이다.

이 구현들을 테이블 뷰 데이터소스 프로토콜 이라고 한다.

본 강의에 등록된 질문이 없습니다. 혹시 궁금하신 부분이 있으면 주저하지 말고 무엇이든 물어보세요.