티스토리 뷰
테이블뷰를 만드는 방법은 알고 있지만, 세부적인 사항에 대해 정리를 해보겠다.
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
'Sopt 28th 세미나 - iOS' 카테고리의 다른 글
[Swift] Refresh Control (당겨서 새로고침) (0) | 2021.08.16 |
---|---|
[Swift] Activity Indicator & Lottie (0) | 2021.08.16 |
[Swift] 데이터 전달 (0) | 2021.08.14 |
[Swift] 시작하는 스토리보드 바꾸는 방법 (0) | 2021.08.14 |
[Swift] ViewController 화면 전환 (0) | 2021.07.23 |
댓글