본문 바로가기

iOS 앱 개발자 프로젝트/iOS 심화

[iOS] bookStore app project (5)

firstVC의 tableView를 구현한  지난 글에 이어,

secondVC의 cell을 구현하여 layout을 맞추고, tableView에 연결합니다.

 

#1 - Intro (goal setting)
#2 - UI Design (Codebase)
#3 - Api
#4 - tableview

#5 - secondVC

 


 

 

||  SelectedListTableVIewCell 생성 + 구현

 

우선 2nd VC의 UITableView에 들어갈 아래의 Cell을 만든다. 

 

secondVC의 TableView 내의 Cell 생성하기

 

 

SelectedListTableViewCell 을 만들 때 앞서 만든 SearchResultTableViewCell을 약간 재활용했다. 

 

 

SelectedListTableViewCell을 실행해보며 Cell 내의 UI 확인

(좌) SearchResultTableViewCell (우) SelectedListTableViewCell : top과 bottom의 in/offset을 수정했다. 

 

 

 

SecondViewController에서 UITableView의 Delegate와 DataSource를 설정하고 구현

   extension SecondViewController: UITableViewDelegate, UITableViewDataSource {
    
    func tableSetup() {
        selectedTable.delegate = self
        selectedTable.dataSource = self
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return selectedInfo.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = selectedTable.dequeueReusableCell(withIdentifier: "SelectedListTableViewCell", for: indexPath) as? SelectedListTableViewCell else { return UITableViewCell() }
        let item = selectedInfo[indexPath.row]
        cell.titleLabel.text = item.title
        cell.authorLabel.text = item.authors
        cell.priceLabel.text = item.price.stringValue
        return cell
    }

 

 

 

1. tableSetup() 메서드:

  • selectedTable.delegate = self를 통해 SecondViewController 자신을 selectedTable의 delegate로 설정
  • selectedTable.dataSource = self를 통해 SecondViewController 자신을 selectedTable의 dataSource로 설정
  • 이를 통해 SecondViewController가 UITableView의 동작과 데이터 관리를 직접 제어할 수 있다.

 

2. tableView(_:numberOfRowsInSection:) 메서드:

  • UITableViewDataSource 프로토콜의 필수 메서드
  • 특정 섹션에 포함된 행(셀) 수를 반환
  • 여기서는 selectedInfo.count를 반환하여 selectedInfo 배열의 개수만큼 행이 표시되도록 한다.\

3. tableView(_:cellForRowAt:) 메서드:

  • UITableViewDataSource 프로토콜의 필수 메서드
  • 이 메서드는 특정 인덱스 경로에 해당하는 셀을 반환
  • 여기서는 selectedTable.dequeueReusableCell(withIdentifier:for:) 메서드를 사용하여 재사용 가능한 셀을 가져온다.
  • 그리고 SelectedListTableViewCell 클래스로 다운캐스팅하여 셀의 속성(titleLabel, authorLabel, priceLabel)을 설정
  • 최종적으로 구성된 셀을 반환 (return cell)

 

 

 

 

to be continued..

'iOS 앱 개발자 프로젝트 > iOS 심화' 카테고리의 다른 글

[iOS] bookStore app project (4)  (0) 2024.05.09
[iOS] bookStore app project (3)  (4) 2024.05.08
[iOS] bookStore app project (2)  (2) 2024.05.07
[iOS] SnapKit (feat. SPM)  (2) 2024.05.05
[iOS] bookStore app project (1)  (2) 2024.05.04