UITableViewDataSource 🍎

YaR LabΒ·2023λ…„ 6μ›” 26일
0

iOS 🍎

λͺ©λ‘ 보기
3/26
post-thumbnail

1️⃣ μ •μ˜

ν…Œμ΄λΈ” 뷰의 데이터λ₯Ό κ΄€λ¦¬ν•˜κ³  셀을 μ œκ³΅ν•˜κΈ° μœ„ν•΄ 객체가 μ±„νƒν•˜λŠ” λ©”μ„œλ“œλ“€λ‘œ 이루어진 ν”„λ‘œν† μ½œ

@MainActor
protocol UITableViewDataSource

2️⃣ μ„€λͺ…

  • ν…Œμ΄λΈ” λ·°λŠ” 데이터 자체λ₯Ό κ΄€λ¦¬ν•˜μ§€ μ•Šκ³  λ°μ΄ν„°μ˜ ν‘œμ‹œλ§Œμ„ λ‹΄λ‹Ή
  • 데이터λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ ν…Œμ΄λΈ”μ— 데이터 μ†ŒμŠ€ 객체λ₯Ό μ œκ³΅ν•΄μ•Ό 함
  • 데이터 μ†ŒμŠ€ κ°μ²΄λŠ” UITableViewDataSourceν”„λ‘œν† μ½œμ„ κ΅¬ν˜„ν•œ 객체
  • 데이터 μ†ŒμŠ€ κ°μ²΄λŠ” ν…Œμ΄λΈ”λ‘œλΆ€ν„° 데이터 κ΄€λ ¨ μš”μ²­μ— μ‘λ‹΅ν•˜λŠ” 객체
  • λ˜ν•œ, 데이터λ₯Ό 직접 κ΄€λ¦¬ν•˜κ±°λ‚˜ μ•±μ˜ λ‹€λ₯Έ λΆ€λΆ„κ³Ό ν˜‘λ ₯ν•˜μ—¬ 데이터λ₯Ό 관리

3️⃣ μ—­ν•  및 μ±…μž„

  • ν…Œμ΄λΈ”μ˜ μ„Ήμ…˜ 및 ν–‰ 수λ₯Ό λ³΄κ³ ν•˜λŠ” 것
  • 각 행에 λŒ€ν•œ 셀을 μ œκ³΅ν•˜λŠ” 것
  • μ„Ήμ…˜ 헀더 및 ν‘Έν„°μ˜ 제λͺ©μ„ μ œκ³΅ν•˜λŠ” 것
  • 인덱슀(μžˆλŠ” 경우)λ₯Ό κ΅¬μ„±ν•˜λŠ” 것
  • μ‚¬μš©μž λ˜λŠ” ν…Œμ΄λΈ”μ—μ„œ λ°œμƒν•œ 기반 λ°μ΄ν„°μ˜ 변경을 μš”κ΅¬ν•˜λŠ” μ—…λ°μ΄νŠΈμ— μ‘λ‹΅ν•˜λŠ” 것

4️⃣ ν•„μˆ˜ κ΅¬ν˜„ λ©”μ„œλ“œπŸŒŸ

  • numberOfRowsInSection : ν•΄λ‹Ή μ„Ήμ…˜μ˜ ν‘œμ‹œν•  ν–‰μ˜ 수λ₯Ό λ°˜ν™˜ν•˜λŠ” λ©”μ„œλ“œ
  • cellForRowAt indexPath -> UITableViewCell : 지정 인덱슀 κ²½λ‘œμ— λŒ€ν•œ ν•΄μ˜ 셀을 λ°˜ν™˜ν•˜λŠ” λ©”μ„œλ“œ
// Return the number of rows for the table.     
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
   return 0
}


// Provide a cell object for each row.
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
   // Fetch a cell of the appropriate type.
   let cell = tableView.dequeueReusableCell(withIdentifier: "cellTypeIdentifier", for: indexPath)
   
   // Configure the cell’s contents.
   cell.textLabel!.text = "Cell text"
       
   return cell
}
  • ν…Œμ΄λΈ”μ— νŠΉμ • κΈ°λŠ₯을 μ‚¬μš©ν•˜λ €λ©΄ 이 ν”„λ‘œν† μ½œμ˜ λ‹€λ₯Έ λ©”μ„œλ“œλ₯Ό μ‚¬μš©

5️⃣ μ„Ήμ…˜ 및 ν–‰μ˜ μœ„μΉ˜ 지정

  • ν…Œμ΄λΈ” λ·°λŠ” NSIndexPath 객체의 row와 section속성을 μ‚¬μš©ν•˜μ—¬ μ…€μ˜ μœ„μΉ˜λ₯Ό μ•Œλ €μ€Œ
  • ν–‰κ³Ό μ„Ήμ…˜ μΈλ±μŠ€λŠ” 0λΆ€ν„° μ‹œμž‘ν•˜λ―€λ‘œ 첫 번째 μ„Ήμ…˜μ€ 인덱슀 0에 μœ„μΉ˜ν•˜κ³ , 두 번째 μ„Ήμ…˜μ€ 인덱슀 1에 μœ„μΉ˜ν•˜λ©° μ΄μ–΄μ„œ 증가함
  • λ§ˆμ°¬κ°€μ§€λ‘œ 각 μ„Ήμ…˜μ˜ 첫 번째 행은 인덱슀 0에 μœ„μΉ˜ν•˜λ―€λ‘œ, 행을 κ³ μœ ν•˜κ²Œ μ‹λ³„ν•˜λ €λ©΄ μ„Ήμ…˜κ³Ό ν–‰ 값을 λͺ¨λ‘ μ‚¬μš©ν•΄μ•Ό 함
  • μ„Ήμ…˜μ΄ μ—†λŠ” κ²½μš°μ—λŠ” ν–‰ κ°’λ§Œ μ‚¬μš©ν•˜λ©΄ 됨

μΆœμ²˜πŸ“š

🍎Apple Docs: UITableViewDataSource

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보