테이블 뷰의 동작원리
테이블 뷰를 스크롤할 때 발생하는 일들
사진속 코드에 보듯이
callMovieAPI() 메소드에서 API를 호출하는 코드중 URL에 포함되는 count값을 30으로 변경
api에서 한번에 읽어오는 데이터 개수를 30개로 설정 할 수 있다.
테이블 뷰의 재사용
재사용 메커니즘은 ios 특유의 부드러운 화면을 위해 사용되는 몇 가지 메커니즘 중 하나다.
1.테이블 뷰가 화면에 나타낼 셀 객체를 자신의 데이터 소스에게 요청합니다.
[데이터요청할 때의 메소드 = tableView(_:cellForRowAt:) 입니다]
2.데이터소스는 테이블 뷰의 재사용 큐에서 사용 가능한 셀이 있는지 확인하여 만일 있으면
그중 하나를 꺼내 전달하고, 없으면 새로운 셀을 생성한다.
3.tableView(_:cellForRowAt:) 메소드가 셀의 콘텐츠를 구성한 다음 반환하면 테이블 뷰는 이 셀을 받아
화면에 표시합니다.
4.사용자가 테이블 뷰를 스크롤함에 따라 화면을 벗어난 셀은 테이블 뷰에서 제거되지만 완전히 삭제하는
것이 아니라 재사용 큐에 추가됩니다.
5.사용자의 스크롤에 따라 1~4의 과정을 반복합니다.
아래 메소드가 재사용 큐에서 사용 가능한 셀을 확인하고, 없으면 셀을 새로 생성하여 반환 하는 2번 역활을 합니다.
tableView.dequeueReusableCellWithIdentifier("ListCell") as! MovieCell
ReusableCell(재사용 가능한 셀)
"ListCell"이 재사용 식별자(Reuse Identifier)에 해당 된다.
셀 인스펙터창 -> Identifier 항목에서 ListCell 속성이 Reuse Identifier 이다.
재사용에 관하여
화면에 나타내야 할 데이터가 많아도 "테이블 뷰"는 화면에 보이는 셀만 생성한다, 나머지 셀들은 필요할 때마다 그때 생성한다.
화면에 보이는 딱 그만큼의 셀만 만들어 냅니다.
스크롤 내림으로 인해 화면을 벗어나게 된 기존 셀들은 테이블 뷰에서 제거한 후 '재사용 큐'에 저장된다,
새로운 셀이 필요해지는 시점이 되면 '재사용 큐'에 저장된 셀을 꺼내어 재사용하고, 저장된 셀이 없을 경우 새로 생성합니다.