[swift] IGListKit에서 셀 선택 유지하는 방법

IGListKit은 UICollectionView를 기반으로 한 데이터 주도형 UI 프레임워크입니다. 셀 선택을 유지하기 위해서는 IGListKit의 didSelectItem 메소드를 사용하여 선택된 셀의 상태를 저장하고 관리해야합니다.

아래는 IGListKit에서 셀 선택을 유지하는 방법에 대한 예시입니다:

  1. 먼저, IGListKit의 IGListAdapterDelegate 프로토콜을 구현해야합니다.
class MyAdapterDelegate: NSObject, IGListAdapterDelegate {
  var selectedItems: Set<IndexPath> = []

  func listAdapter(_ listAdapter: IGListAdapter, didSelectItemAt indexPath: IndexPath) {
    selectedItems.insert(indexPath)
    // 선택된 셀의 상태 등을 업데이트하는 로직 추가
  }
  
  func listAdapter(_ listAdapter: IGListAdapter, didDeselectItemAt indexPath: IndexPath) {
    selectedItems.remove(indexPath)
    // 선택 해제된 셀의 상태 등을 업데이트하는 로직 추가
  }
}
  1. IGListAdapter 인스턴스를 초기화할 때 adapter(_:didSelectItemAt:) 메소드를 호출할 수 있는 IGListAdapterDelegate 인스턴스를 할당해야합니다.
let adapterDelegate = MyAdapterDelegate()
let adapter = IGListAdapter(updater: IGListAdapterUpdater(), viewController: self, workingRangeSize: 0, selectionDelegate: adapterDelegate)

// adapter 설정 및 사용
  1. 해당 셀의 선택 상태에 따라 UI를 업데이트하고 필요에 따라 저장된 선택된 셀의 상태를 관리하면 됩니다.

위의 예시에서는 selectedItems라는 Set<IndexPath> 프로퍼티를 사용하여 선택된 셀의 인덱스 패스를 저장하고 있습니다. 선택된 셀의 상태를 변경하기 위해서는 이 프로퍼티를 참조하여 UI를 업데이트하거나 셀의 상태를 관리하는 로직을 추가하면 됩니다.

IGListKit 공식 문서 및 예제에서 더 자세한 내용을 참고하실 수 있습니다.

위의 방법을 따라 IGListKit에서 셀 선택을 유지할 수 있습니다.