티스토리 뷰

테이블뷰를 만드는 방법은 알고 있지만, 세부적인 사항에 대해 정리를 해보겠다.

 

1.  awakeFromNib() 

객체가 초기화(인스턴스화)된 후 호출되는 메서드

간단하게, ViewController에서 사용했던 ViewDidLoad()와 비슷한 개념

awakeFromNib()가 일어나기 전에 Init(coder: )가 호출된다. -> 코드로 Cell을 짜는 경우에는 이 부분을 작성 !

Init이 끝난 이후에, awakeFromNib() 호출이 됨

스토리보드나 .xib 형태로 구현하는 경우에는 init을 따로 해주지 않더라도 자동으로 호출이 됨 !

init(coder: ) 시점에서는 --> frame이나 layer 관련 없는 것들만 !

awakeFromNib() 시점에서는 --> Frame, Layer, @IBoutlet 관련값 접근 가능 !

 

2. 테이블뷰의 작동 원리 

테이블뷰는 재사용 큐를 활용해 Cell을 재사용(Reuse) 한다.

테이블뷰 입장에서는 필요할 때마다 재사용 큐한테 물어본다.

"나 이 Cell이 필요한데 지금 그 Cell 큐에 있어 ?"

-> 없으면 새로운 셀 생성 // 있으면 재사용 큐에서 그 Cell을 재사용함 

재사용하기 위해서 필요한 프로토콜 2가지 형식이 있다.

UITableViewDelegate 

-> 화면에 보이는 모습과 행동을 담당한다. (테이블뷰의 동작과 모양을 관리)

cell을 터치하면 무엇을 하나요? 

func tableView(tableView: UITableView, didSelecteRowAtIndexPath indexPath: IndexPath)

cell의 높이는 어떻게 보여줄까요?

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

UITableViewDataSource

-> 테이블을 만들 때, 필요한 정보를 제공한다. (데이터를 받아서 뷰를 그려주는 역할)

cell은 몇개를 그릴까요?

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int

cell에는 어떤 내용을 담아서 보여줄까요?

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함