void CATableView::update(float fDelta) { CAScrollView::update(fDelta); CCRect rect = this->getBounds(); rect.origin.y -= rect.size.height/2; rect.size.height *= 2; std::deque<CATableViewCell*>::iterator itr; for (itr=m_pTableCells.begin(); itr!=m_pTableCells.end(); itr++) { CATableViewCell* cell = *itr; CCPoint point = cell->getCenterOrigin(); point = m_pContainer->convertToWorldSpace(point); point = this->convertToNodeSpace(point); if (rect.containsPoint(point)) { cell->setVisible(true); } else { cell->setVisible(false); } } }
void CATableView::update(float fDelta) { CAScrollView::update(fDelta); CCRect rect = this->getBounds(); rect.origin.y -= rect.size.height * 0.1f; rect.size.height *= 1.2f; std::deque<CATableViewCell*>::iterator itr; for (itr=m_pTableCells.begin(); itr!=m_pTableCells.end(); itr++) { CATableViewCell* cell = *itr; CCRect cellRect = cell->getFrame(); cellRect.origin = m_pContainer->convertToWorldSpace(cellRect.origin); cellRect.origin = this->convertToNodeSpace(cellRect.origin); if (rect.intersectsRect(cellRect)) { cell->setVisible(true); } else { cell->setVisible(false); } } }