     if loading || reloading || !hasReloaded { return }
     loading = true
     lastLoadBounds = bounds
-    
+
     var indexes = provider.visibleIndexes(activeFrame: activeFrame)
     let deletedIndexes = visibleIndexes.subtracting(indexes)
     let newIndexes = indexes.subtracting(visibleIndexes)


  func commonInit() {
    CollectionViewManager.shared.register(collectionView: self)
    
    tapGestureRecognizer.addTarget(self, action: #selector(tap(gr:)))
    addGestureRecognizer(tapGestureRecognizer)
    
    panGestureRecognizer.addTarget(self, action: #selector(pan(gr:)))
  }


      identifiers[i].info = (newCell, i)
    }
    visibleIndexes = indexes

    if !needsReload {
      for (index, view) in visibleCellToIndexMap.ts {
        (view.currentCollectionPresenter ?? presenter).update(collectionView:self, view: view, at: index, frame: provider.frame(at: index))
