iOS/UIKIT

CollectionView 특정 셀만 업데이트하기

밤새는 탐험가89 2024. 9. 13. 05:53

셀 리로드 방식 개선:

  • 현재 선택된 카테고리가 변경되면 categoryCollectionView를 리로드하는 방식인데, 전체 셀을 리로드하는 대신에 특정 셀만 리로드하면 성능적으로 더 효율적입니다. 특히 데이터가 많아질 경우 전체를 리로드하는 대신 선택된 셀만 갱신하는 것이 더 좋습니다.

 

 

개선 전 코드

homeView.getHomeContentView().categoryCollectionView.customCategoryCollectionView.reloadData()

 

 

개선 후 코드 

let previousSelectedIndex = placeSelectedIndex  // 이전에 선택된 인덱스 저장
placeSelectedIndex = indexPath.item  // 새로운 선택 인덱스로 업데이트

let selectedIndexPath = IndexPath(item: placeSelectedIndex, section: 0)
let previousSelectedIndexPath = IndexPath(item: previousSelectedIndex, section: 0)

// 이전 선택 항목이 유효한 경우에만 리로드
if previousSelectedIndex != placeSelectedIndex {
    homeView.getHomeContentView().categoryCollectionView.customCategoryCollectionView.reloadItems(at: [selectedIndexPath, previousSelectedIndexPath])
}