티스토리 뷰

TableView DataSource, Delegate

 

 

오늘은 TableView의 Datasource와 Delegate에 대해 알아볼거에요!

 

 

그 전에 TableView가 무엇인지 먼저 간단하게 살펴볼까요?

 

 

테이블뷰는 행과 섹션을 가지고 있고, 세로 스크롤이 가능한 것 같아요! 테이블의 각 행에는 앱과 관련된 정보들이 표시가 되는 것 같구요.

 

섹션은 관련행들을 보기 쉽게 그룹화해주는 것 같네요! 연락처앱에서 ABC로 묶어놓은 것 처럼요!!

 

테이블뷰는 다양한 객체들간의 collaboration 인 것 같은데요. 간단하게만 살펴보면 cell, table view controller, data source, delegate 인 것 같네요~~

 

 

 

 

그럼 어떤식으로 사용이 되는지 잠깐만 볼까요?

 

공식문서에는 '단일 열에 배열된 행을 사용하여 데이터를 표시하는 뷰' 라고 되어있는 걸 볼 수 있네요

 

또한 UIScrollView 상속을 받고 있으므로 Scroll은 당연히 사용이 가능할거고, 관련 메서드 역시 사용가능하겠죠??

 

테이블뷰를 사용하려면 기본적으로 DataSourceDelegate가 필요하다고 많은 블로그에서 외치고 있는데요

 

저는 여기서 DataSourceDelegate에 대해서 알아볼거에요! 왜 쓰는지에 대한 글은 생각보다 많이 없더라구요 😥

 

그래서 사용하기 전에 왜 사용해야 하는지 조금이라도 알고 넘어가면 좋을 것 같더라구요

 

 

 

 

자 그럼 얘네들이 무슨 역할을 하냐!!!!!

 

 

우선 DataSource는 데이터를 받아 이를 뷰에 그려주는 역할을 해요.

 

즉, 무엇을 어떻게 보여줄 것인가? 에 대한 것이죠

 

MVC 중 모델에 가깝다고 생각해볼수도 있겠죠?

 

 그러니까 DataSource 가 없으면 테이블뷰에 아무것도 띄울수가 없겠죠??

 

func tableView(tableView: UITableView, cellForRowAt: IndexPath) -> UITableViewCell
func tableView(tableView: UITableView, numberOfRowsInSection: Int) -> Int 
func tableView(tableView: UITableView, titleForHeaderInSection: Int) -> String?

 

그래서 DataSource 메서드는 위와 같이, 셀에 무슨 데이터를 넣을지, 섹션 안에 행은 몇개를 가질 것인지 처럼 뷰의 역할을 담당하고 있다고 볼 수 있어요!  

 

테이블 뷰의 시각적 모양에 대한 최소한의 정보를 제공한다~ 라고 볼 수 있죠

 

 

 

 

그럼 이제 Delegate는 무얼 하나 한번 살펴볼까요??

 

 

Delegate는 어떤 행동에 대한 동작을 제시한다고 이해하면 될 것 같아요.

 

무슨 말이냐...면 사용자가 보이는 것들 중 터치라던지, 무엇인가에 대해 액션을 취한다면 그에 대한 동작을 수행한다!!! 라는 거죠.

 

Delagate는 테이블뷰의 동작이랑 모양을 관리하니까 MVC 중에서는 컨트롤러와 가깝다고 생각하면 좋을 것 같네요!

 

그래서 뭐... Delegate 없이도 테이블뷰를 만들어서 볼 수 있기는 해요..ㅎ

 

func tableView(tableView: UITableView, didSelectRowAt: IndexPath)
func tableView(tableView: UITableView, heightForRowAt: IndexPath) -> CGFloat

 

 

위와 같이 row를 클릭하면 뭐할래? 와 같은 동작과 더불어 테이블뷰의 세세한 부분을 컨트롤 할 수 있다고 보시면 될 것 같습니다!!

 

 

 

간단 요약본을 표로 나타내보았어요!!

 

UITableViewDataSource UITableViewDelegate
총 섹션은 몇개죠? 1행의 높이는 얼마에요?
두번째 섹션의 행은 몇개죠? 3행을 선택하면 난 뭘하죠?
두번째 행에는 무슨정보를 보여줄거죠?? 2행은 들여쓰기 얼마나 할거에요?

 

 

오늘 이렇게 TableView의 Datasource와 Delegate에 대해 알아봤는데요! 틀린 개념 및 질문은 언제든지 환영입니다!!!

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함