이 포스트는 edwith의 iOS 프로그래밍을 공부하고 정리한 내용입니다

edwith iOS 프로그래밍 - 뷰의 재사용이란?


뷰의 재사용

  • iOS 기기는 한정된 메모리를 가지고 애플리케이션을 구동함

  • 만약 사용자에게 보여주고 싶은 데이터가 매우 많고, 데이터의 양만큼 많은 뷰가 필요하다면??

    • 화면에 표시할 수 있는 뷰의 개수는 한정되어 있지만, 표현해야 하는 데이터가 많은 경우 반복된 뷰를 생성하기보다는 뷰를 재사용

    • 사용할 수 있는 메모리가 작아서 데이터의 양만큼 많은 뷰를 생성하는 것은 메모리를 많이 낭비하는것

    • 그러므로 뷰를 재사용하여 메모리 절약, 성능 향상의 두가지 이점을 얻을 수 있다


재사용의 대표적인 예

  • iOS 환경에서 뷰를 재사용하는 대표적인 예

    • 1) UITableViewCell -> UITableView의 셀

    • 2) UICollectionViewCell -> UICollectionView의 셀


재사용 원리

  • 1) 테이블뷰 및 컬렉션뷰에서 셀을 표시하기 위해 데이터 소스에 뷰(셀) 인스턴스를 요청

  • 2) 데이터 소스는 요청마다 새로운 셀을 만드는 대신 재사용 큐(Reuse Queue)에 재사용을 위해 대기하고있는 셀이 있는지 확인 후 있으면 그 셀에 새로운 데이터를 설정하고, 없으면 새로운 셀을 생성

  • 3) 테이블뷰 및 컬렉션뷰는 데이터 소스가 셀을 반환하면 화면에 표시

  • 4) 사용자가 스크롤을 하게 되면 일부 셀들이 화면 밖으로 사라지면서 다시 재사용 큐에 들어간다

  • 5) 위의 1번부터 4번까지의 과정이 계속 반복된다

reuseCellImg