[Apple] UICollectionViewDiffableDataSource

J.Noma·2022년 1월 9일
0

Reference


Overview

UICollectionViewDiffableDataSource
diffable data source 객체는 특수한 data source 타입입니다. 이것은 당신의 CollectionView의 data와 UI 업데이트를 간단하고 효율적으로 관리할 메서드들을 제공합니다. 또한, 이것은 UICollectionViewDataSource 프로토콜을 채택하며 요구사항 메서드들을 전부 보유하고 있습니다

CollectionView에 data를 제공하는 방법
1. CollectionView에 diffable data source를 연결한다
2. cell provider를 구현한다
3. data의 현재 상태를 generate
4. UI에 data를 출력

dataSource = UICollectionViewDiffableDataSource<Int, UUID>(collectionView: collectionView) {
    (collectionView: UICollectionView, indexPath: IndexPath, itemIdentifier: UUID) -> UICollectionViewCell? in
    // Configure and return cell.
}

diffable data source를 CollectionView에 연결하기 위해 우선 init(collectionView:cellProvider:)을 사용하여 객체를 생성합니다. 이 때, 클로저 파라미터로 cell을 어떻게 제공할 것인지에 대한 provider를 넘겨야 합니다

snapshot
그 후, data의 현재 상태를 generate하고 UI에 업데이트하기 위해, snapshot이란 것을 만들고 적용해야 합니다. snapshot에 대한 자세한 정보는 NSDiffableDataSourceSnapshot를 참고합니다

❗️중요❗️
diffable data source를 설정한 이후에는 dataSource 프로퍼티를 다른 객체로 변경하면 안됩니다. 만약 CollectionView가 새로운 dataSource가 필요하다면 CollectionView 객체 자체를 새로 생성해야 합니다

profile
노션으로 이사갑니다 https://tungsten-run-778.notion.site/Study-Archive-98e51c3793684d428070695d5722d1fe

0개의 댓글