UITableView 파헤치기

7과11사이·2023년 8월 12일
2

UITableView

목록 보기
1/2
post-thumbnail

🔥 모든 내용은 공부하는 차원에서 정리하고 있습니다.
🔥 누락되거나 잘못된 내용이 있다면 알려주시면 감사드립니다!

파헤치기 전...

이번 주 차 과제로 테이블 뷰를 활용하여 어플을 구성해보았다.

맨땅에 헤딩하며 어플을 만들 때 UITableView를 활용했었는데,
당시에는 그저 구현에만 집중 했던 것과 달리 UIComponent에 대해 조금은 이해하게 됐고,
보다 더 깊게 알고 있으면 좋겠다는 생각으로 앞으로 파트별로 구분 지어 글을 작성해 본다!


TableView가 뭘까?

설명이 혹시나 다를까 싶어 애플과 마소를 함께 찾아보았는데, 왼쪽이 애플, 오른쪽이 마소에서 정리한 내용이다.

복잡해 보인다면,하나의 행을 활용하며 열(row)에서 데이터를 보여주는 View라고 생각하면 될 듯하다!
이는 table이 "정보와 숫자를 블럭 또는 열로 나열한다"는 의미가 있기 때문~

위에 나열된 차트처럼 보이는 것이 바로 TableView이다!
알고보면 우리는 이미 익숙한 UIComponent이다.

테이블 뷰를 사용하는 목적은 간단한데, 아래와 같이 구분 될 수 있다.
1.(왼) 담고 있는 데이터를 나열하고 싶을 때
2.(오) 특정한 구조로 데이터를 구분, 나열하며 계층적으로 데이터의 detail에 접근하고자 할 때


UITableView 구성

1. UITableView는 UIScrollView의 child Class

앞서 UITableView는 데이터를 나열할 수 있다고 했다.
그렇다면 데이터가 많아질 수록 tableView 또한 길어져야 하는데,
UITableView는 길어지지 않고 scrolling 기능이 활성화 된다.

2. UITableView는 cell로 이루어져 있다.

TableView를 활용하면 데이터를 나열할 수 있지만, 테이블이 데이터를 나열하지는 않는다.
마치 개발자들이 코드를 작성하지만 코드를 직접 실행하지 못하는 것과 같다고 보면 되지 않을까 싶다.
우리는 그저 실행할 코드를 쭉~ 나열하고 직접 코드를 실행하는 주체는 compiler나 프로그램이기 때문이다!

마찬가지로 UITableView는 데이터를 담아둘 수 있는 일종의 테두리이자 껍데기인 셈이다.
실질적으로 데이터를 채워 넣는 역할은 UITableView의 영혼의 단짝 UITableViewCell이 하기 때문이다.

TableView를 사용하면 위와 같은 메서드를 무조건 보았거나 활용했을 것이다!
위 과정을 나름 머리를 굴려 쉽게 설명 해보자면, 아래의 순서를 거쳐 데이터가 채워질 것이다.

  1. UITableView는 하나의 셀이 존재한다.
  2. 테이블 뷰에 보여졌으면 하는 데이터를 기본 cell 또는 특정 cell에 담기도록 지정
    2-1. 메모리 효율성을 위해 cell은 새롭게 만들어지지 않고 reuse(재활용)되어 tableView에 채워진다. 재활용이란?
  3. 보유하고 있는 데이터 갯수만큼 각 열이 채워지도록 지정
  4. return cell하여 최종 출력 및 populate


나름 이해하고 있는 과정을 써보긴 했는데... 어떨지 모르겠다.
간략하게 작성하면 사용자가 보여주고자 하는 데이터를 TableView가 받고,
하나의 열을 담당하는 cell에게 데이터 묶음을 하나씩 풀어 주는 것으로 이해하면 된다.

TableViewCell에 대해서는 추후에 정리를 해봐야겠다!

3. 실질적인 데이터와 권한을 넘기거나 받는 delegate를 활용한다

완벽하지는 않지만 지금까지 이해하고 있는 내용을 적어보자면...

  1. TableView를 활용하기 위해서는 두 가지의 delegate를 활용해야 한다.
    1-1. delegate는 위임, 대리자를 의미하며 지정된 UIComponent의 사용 권한을 넘겨주거나 가진다.
  2. delegate는 dataSourcedelegate로 구분된다.
  3. dataSource는 데이터를 어떻게 사용할지 정할 수 있게 된다.
    예) 모든 데이터를 출력 또는 10줄만 출력 등
  4. delegate는 TableView에 대한 권한을 가지기에 기능을 추가할 수 있게 된다.
    예) leading, trailing swipe etc


    UITableView 이용 목적

데이터 정리를 할 수 있는 가장 최적의 View

특히 스마트폰에 적합한 뷰라 생각이 되는데, 작은 화면에 데이터를 잘게 쪼개어 정리를 할 수 있기 때문이다!

하나의 특징은 테이블뷰에 담기는 모든 데이터는 그룹별로 구분 지어 출력을 시킬 수 있다.
위 이미지 왼쪽에 보이는 연락처 어플처럼 성함별로 정리를 하거나
우측의 설정 어플처럼 특정 공통점을 엮어 그룹핑을 할 수 있다는 점이 있다.

이처럼 테이블 뷰는 데이터를 구조적인 형식으로 세우기 위해 사용한 뷰 컨트롤러인데,
Navigation controller와 함께 활용되어 사용자에게 데이터를 깊게 파고 들어가는 계층적인 느낌을 전달한다.

쉽게 이해하면 표면에서 내부로 정보 디깅을 하는 느낌을 준다고 할까?

참고

0개의 댓글