void CACollectionView::clearData() { m_rUsedCollectionCellRects.clear(); m_mpUsedCollectionCells.clear(); m_rUsedCollectionCellRects.clear(); m_pSectionHeaderViews.clear(); m_pSectionFooterViews.clear(); m_rSectionRects.clear(); for (int i = 0; i < m_vpUsedCollectionCells.size(); i++) { CACollectionViewCell* cell = m_vpUsedCollectionCells.at(i); CC_CONTINUE_IF(cell == NULL); m_mpFreedCollectionCells[cell->getReuseIdentifier()].pushBack(cell); cell->removeFromSuperview(); cell->resetCell(); } m_vpUsedCollectionCells.clear(); m_pHighlightedCollectionCells = NULL; }
void CACollectionView::recoveryCollectionCell() { DRect rect = this->getBounds(); rect.origin = getContentOffset(); rect.origin.y -= rect.size.height * 0.1f; rect.size.height *= 1.2f; std::map<CAIndexPath3E, CACollectionViewCell*>::iterator itr; for (itr = m_mpUsedCollectionCells.begin(); itr != m_mpUsedCollectionCells.end(); itr++) { CACollectionViewCell* cell = itr->second; CC_CONTINUE_IF(cell == NULL); DRect cellRect = cell->getFrame(); CC_CONTINUE_IF(rect.intersectsRect(cellRect)); m_mpFreedCollectionCells[cell->getReuseIdentifier()].pushBack(cell); cell->removeFromSuperview(); cell->resetCell(); itr->second = NULL; m_vpUsedCollectionCells.eraseObject(cell); } }