1οΈβ£ μ μ
ν
μ΄λΈ λ·°μ λ°μ΄ν°λ₯Ό κ΄λ¦¬νκ³ μ
μ μ 곡νκΈ° μν΄ κ°μ²΄κ° μ±ννλ λ©μλλ€λ‘ μ΄λ£¨μ΄μ§ νλ‘ν μ½
@MainActor
protocol UITableViewDataSource
2οΈβ£ μ€λͺ
- ν
μ΄λΈ λ·°λ λ°μ΄ν° μ체λ₯Ό κ΄λ¦¬νμ§ μκ³ λ°μ΄ν°μ νμλ§μ λ΄λΉ
- λ°μ΄ν°λ₯Ό κ΄λ¦¬νκΈ° μν΄ ν
μ΄λΈμ λ°μ΄ν° μμ€ κ°μ²΄λ₯Ό μ 곡ν΄μΌ ν¨
- λ°μ΄ν° μμ€ κ°μ²΄λ
UITableViewDataSource
νλ‘ν μ½μ ꡬνν κ°μ²΄
- λ°μ΄ν° μμ€ κ°μ²΄λ ν
μ΄λΈλ‘λΆν° λ°μ΄ν° κ΄λ ¨ μμ²μ μλ΅νλ κ°μ²΄
- λν, λ°μ΄ν°λ₯Ό μ§μ κ΄λ¦¬νκ±°λ μ±μ λ€λ₯Έ λΆλΆκ³Ό νλ ₯νμ¬ λ°μ΄ν°λ₯Ό κ΄λ¦¬
3οΈβ£ μν λ° μ±
μ
- ν
μ΄λΈμ μΉμ
λ° ν μλ₯Ό λ³΄κ³ νλ κ²
- κ° νμ λν μ
μ μ 곡νλ κ²
- μΉμ
ν€λ λ° νΈν°μ μ λͺ©μ μ 곡νλ κ²
- μΈλ±μ€(μλ κ²½μ°)λ₯Ό ꡬμ±νλ κ²
- μ¬μ©μ λλ ν
μ΄λΈμμ λ°μν κΈ°λ° λ°μ΄ν°μ λ³κ²½μ μꡬνλ μ
λ°μ΄νΈμ μλ΅νλ κ²
4οΈβ£ νμ ꡬν λ©μλπ
numberOfRowsInSection
: ν΄λΉ μΉμ
μ νμν νμ μλ₯Ό λ°ννλ λ©μλ
cellForRowAt indexPath
-> UITableViewCell
: μ§μ μΈλ±μ€ κ²½λ‘μ λν ν΄μ μ
μ λ°ννλ λ©μλ
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 0
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cellTypeIdentifier", for: indexPath)
cell.textLabel!.text = "Cell text"
return cell
}
- ν
μ΄λΈμ νΉμ κΈ°λ₯μ μ¬μ©νλ €λ©΄ μ΄ νλ‘ν μ½μ λ€λ₯Έ λ©μλλ₯Ό μ¬μ©
5οΈβ£ μΉμ
λ° νμ μμΉ μ§μ
- ν
μ΄λΈ λ·°λ
NSIndexPath
κ°μ²΄μ row
μ section
μμ±μ μ¬μ©νμ¬ μ
μ μμΉλ₯Ό μλ €μ€
- νκ³Ό μΉμ
μΈλ±μ€λ 0λΆν° μμνλ―λ‘ μ²« λ²μ§Έ μΉμ
μ μΈλ±μ€ 0μ μμΉνκ³ , λ λ²μ§Έ μΉμ
μ μΈλ±μ€ 1μ μμΉνλ©° μ΄μ΄μ μ¦κ°ν¨
- λ§μ°¬κ°μ§λ‘ κ° μΉμ
μ 첫 λ²μ§Έ νμ μΈλ±μ€ 0μ μμΉνλ―λ‘, νμ κ³ μ νκ² μλ³νλ €λ©΄ μΉμ
κ³Ό ν κ°μ λͺ¨λ μ¬μ©ν΄μΌ ν¨
- μΉμ
μ΄ μλ κ²½μ°μλ ν κ°λ§ μ¬μ©νλ©΄ λ¨
μΆμ²π
πApple Docs: UITableViewDataSource