이슈 (문제 정의)

Simulator Screen Recording - iPhone 14 Pro - 2023-07-20 at 06.43.45.gif

서버에서 10개씩 보내주는 데이터를 받아서 스크롤을 할 때마다 다음 페이지를 불러오는 뷰를 구현했어야 했다.

문제 (사유)

해결

페이징 횟수(통신 횟수) 정하기

let totalPage = (data.totalCount) / 10
if self.pageCount >= totalPage {
      self.isFinishPaging = true
}

// 데이터 불러오고 배열에 추가, reloadData() 해주기

호출 시점 정하기

let tableView = self.searchView.searchResultTableView

let offsetY = tableView.contentOffset.y //현재 y축 끝의 위치
let contentHeight = tableView.contentSize.height // 컨텐츠 뷰의 사이즈(높이)
let visibleHeight = tableView.bounds.height // 현재 보여지는 테이블 뷰의 높이

마지막에 도달했을 때는 Y축의 위치가 contentHeight - visibleHeight(즉 전체 ScrollView(TableView)에서 보여지는 높이를 뺐을 때)보다 커졌을 때이다.

if offsetY > contentHeight - visibleHeight {
     getJoinedFriends()
}

⭐️⭐️⭐️ 이때 isLoadingData 라는 플러그로 데이터가 로딩이 끝났는지에 대해 체크하는 과정이 필요하다!!