本文整理汇总了C++中CACollectionViewCell类的典型用法代码示例。如果您正苦于以下问题:C++ CACollectionViewCell类的具体用法?C++ CACollectionViewCell怎么用?C++ CACollectionViewCell使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CACollectionViewCell类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getContentOffset
void CACollectionView::loadCollectionCell()
{
CCRect 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_pUsedCollectionCells.begin(); itr != m_pUsedCollectionCells.end(); itr++)
{
CC_CONTINUE_IF(itr->second != NULL);
CAIndexPath3E r = itr->first;
CCRect cellRect = m_rUsedCollectionCellRects[r];
CC_CONTINUE_IF(!rect.intersectsRect(cellRect));
CACollectionViewCell* cell = m_pCollectionViewDataSource->collectionCellAtIndex(this, cellRect.size, r.section, r.row, r.item);
if (cell)
{
cell->m_nSection = r.section;
cell->m_nRow = r.row;
cell->m_nItem = r.item;
cell->updateDisplayedAlpha(this->getAlpha());
this->addSubview(cell);
cell->setFrame(cellRect);
itr->second = cell;
if (m_pSelectedCollectionCells.count(r))
{
cell->setControlStateSelected();
}
}
}
}
示例2: collectionViewDidSelectCellAtIndexPath
void AutoCollectionViewHorizontalTest::collectionViewDidSelectCellAtIndexPath(CAAutoCollectionView *collectionView, unsigned int section, unsigned int item)
{
CACollectionViewCell* cell = collectionView->cellForRowAtIndexPath(section, item);
cell->getContentView()->setRotation(-360);
cell->getContentView()->setScale(0.5f);
CAViewAnimation::beginAnimations("", NULL);
cell->getContentView()->setRotation(0);
cell->getContentView()->setScale(1.0f);
CAViewAnimation::commitAnimations();
}
示例3: CACollectionViewCell
CACollectionViewCell* CACollectionViewCell::create(const std::string& reuseIdentifier)
{
CACollectionViewCell* cell = new CACollectionViewCell();
if (cell && cell->initWithReuseIdentifier(reuseIdentifier))
{
cell->autorelease();
return cell;
}
CC_SAFE_DELETE(cell);
return NULL;
}
示例4: dequeueReusableCellWithIdentifier
CACollectionViewCell* CACollectionView::dequeueReusableCellWithIdentifier(const char* reuseIdentifier)
{
CACollectionViewCell* cell = NULL;
if (reuseIdentifier && !m_mpFreedCollectionCells[reuseIdentifier].empty())
{
cell = m_mpFreedCollectionCells[reuseIdentifier].back();
cell->retain()->autorelease();
m_mpFreedCollectionCells[reuseIdentifier].popBack();
}
return cell;
}
示例5: CC_CONTINUE_IF
bool CAAutoCollectionView::ccTouchBegan(CATouch *pTouch, CAEvent *pEvent)
{
if (!m_vTouches.empty())
{
m_vTouches.replace(0, pTouch);
return true;
}
bool isInertia = m_tInertia.getLength() < 1.0f;
if (!CAScrollView::ccTouchBegan(pTouch, pEvent))
return false;
if (m_bAllowsSelection && this->isScrollWindowNotOutSide() == false && isInertia)
{
DPoint point = m_pContainer->convertTouchToNodeSpace(pTouch);
std::map<CAIndexPath3E, CACollectionViewCell*>::iterator itr;
for (itr = m_mpUsedCollectionCells.begin(); itr != m_mpUsedCollectionCells.end(); ++itr)
{
CACollectionViewCell* pCell = itr->second;
CC_CONTINUE_IF(pCell == NULL);
if (pCell->getFrame().containsPoint(point) && pCell->isVisible())
{
CC_BREAK_IF(pCell->getControlState() == CAControlStateDisabled);
if (m_pHighlightedCollectionCells != pCell)
{
if (m_pHighlightedCollectionCells)
{
m_pHighlightedCollectionCells->setControlStateNormal();
}
m_pHighlightedCollectionCells = pCell;
}
CC_BREAK_IF(pCell->getControlState() == CAControlStateSelected);
CAViewAnimation::beginAnimations(m_s__StrID, NULL);
CAViewAnimation::setAnimationDuration(0.05f);
CAViewAnimation::setAnimationDidStopSelector(pCell, CAViewAnimation0_selector(CACollectionViewCell::setControlStateHighlighted));
CAViewAnimation::commitAnimations();
break;
}
}
}
return true;
}
示例6: CC_CONTINUE_IF
bool CACollectionView::ccTouchBegan(CATouch *pTouch, CAEvent *pEvent)
{
if (m_pTouches->count() > 0)
{
m_pTouches->replaceObjectAtIndex(0, pTouch);
return true;
}
bool isInertia = m_tInertia.getLength() < 1.0f;
if (!CAScrollView::ccTouchBegan(pTouch, pEvent))
return false;
if (m_bAllowsSelection && this->isScrollWindowNotOutSide() == false && isInertia)
{
CCPoint point = m_pContainer->convertTouchToNodeSpace(pTouch);
std::map<CAIndexPath3E, CACollectionViewCell*>::iterator itr;
for (itr = m_pUsedCollectionCells.begin(); itr != m_pUsedCollectionCells.end(); ++itr)
{
CACollectionViewCell* pCell = itr->second;
CC_CONTINUE_IF(pCell == NULL);
if (pCell->getFrame().containsPoint(point) && pCell->isVisible())
{
CC_BREAK_IF(pCell->getControlState() == CAControlStateDisabled);
if (m_pHighlightedCollectionCells)
{
m_pHighlightedCollectionCells->setControlStateNormal();
}
m_pHighlightedCollectionCells = pCell;
CC_BREAK_IF(pCell->getControlState() == CAControlStateSelected);
CCDelayTime* delayTime = CCDelayTime::create(0.05f);
CCCallFunc* func = CCCallFunc::create(pCell, callfunc_selector(CACollectionViewCell::setControlStateHighlighted));
CCSequence* actions = CCSequence::create(delayTime, func, NULL);
m_pContainer->runAction(actions);
break;
}
}
}
return true;
}
示例7: clearData
void CAAutoCollectionView::clearData()
{
m_mpUsedCollectionCells.clear();
m_rUsedCollectionCellRects.clear();
m_pSelectedCollectionCells.clear();
m_rCollectionViewSection.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->resetCollectionViewCell();
}
m_vpUsedCollectionCells.clear();
m_pHighlightedCollectionCells = NULL;
}
示例8: CACollectionViewCell
CACollectionViewCell* ThirdViewController::collectionCellAtIndex(CACollectionView *collectionView, const CCSize& cellSize, unsigned int section, unsigned int row, unsigned int item)
{
CACollectionViewCell* pCell = new CACollectionViewCell();
char cIdentifier[1024] = { 0 };
sprintf(cIdentifier, "{%d, %d, %d}" ,section, row, item);
pCell->initWithReuseIdentifier(cIdentifier);
CALabel* label = CALabel::createWithCenter(CCRectMake(cellSize.width / 2, cellSize.height - 30, cellSize.width, cellSize.height));
label->setVerticalTextAlignmet(CAVerticalTextAlignmentCenter);
label->setTextAlignment(CATextAlignmentCenter);
label->setFontSize(28);
label->setText(pCell->getReuseIdentifier());
pCell->addSubview(label);
CAImageView* pCellImage = CAImageView::createWithCenter(CCRectMake(cellSize.width / 2, cellSize.height / 2 - 20, cellSize.width*0.7f, cellSize.height*0.7f));
pCell->addSubview(pCellImage);
pCellImage->setImageAsyncWithFile("1.jpg");
return pCell;
}
示例9: mouseMoved
void CACollectionView::mouseMoved(CATouch* pTouch, CAEvent* pEvent)
{
if (m_bAllowsSelection)
{
DPoint point = m_pContainer->convertTouchToNodeSpace(pTouch);
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);
if (cell->getFrame().containsPoint(point) && cell->isVisible())
{
CC_BREAK_IF(cell->getControlState() == CAControlStateDisabled);
if (m_pHighlightedCollectionCells)
{
CAIndexPath3E index = CAIndexPath3E(m_pHighlightedCollectionCells->getSection(),
m_pHighlightedCollectionCells->getRow(),
m_pHighlightedCollectionCells->getItem());
if (m_pSelectedCollectionCells.count(index))
{
m_pHighlightedCollectionCells->setControlStateHighlighted();
}
else
{
m_pHighlightedCollectionCells->setControlStateNormal();
}
}
m_pHighlightedCollectionCells = cell;
cell->setControlStateHighlighted();
break;
}
}
}
}
示例10: getContentOffset
void CACollectionView::recoveryCollectionCell()
{
CCRect 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_pUsedCollectionCells.begin(); itr != m_pUsedCollectionCells.end(); itr++)
{
CACollectionViewCell* cell = itr->second;
CC_CONTINUE_IF(cell == NULL);
CCRect cellRect = cell->getFrame();
CC_CONTINUE_IF(rect.intersectsRect(cellRect));
m_pFreedCollectionCells[cell->getReuseIdentifier()].pushBack(cell);
cell->removeFromSuperview();
cell->resetCollectionViewCell();
itr->second = NULL;
}
}
示例11: CC_RETURN_IF
void CACollectionView::reloadData()
{
CC_RETURN_IF(m_pCollectionViewDataSource == NULL);
this->reloadViewSizeData();
this->removeAllSubviews();
DRect winRect = this->getBounds();
winRect.origin = getContentOffset();
float width = winRect.size.width;
int y = 0;
if (m_nCollectionHeaderHeight > 0 && m_pCollectionHeaderView)
{
m_pCollectionHeaderView->setDisplayRange(true);
m_pCollectionHeaderView->setFrame(DRect(0, y, width, m_nCollectionHeaderHeight));
addSubview(m_pCollectionHeaderView);
y += m_nCollectionHeaderHeight;
}
;
int begin = (int)m_rSectionRects.size();
m_rSectionRects.resize(m_rSectionRects.size() + m_nSections);
for (int i = 0; i < m_nSections; i++)
{
unsigned int iSectionHeaderHeight = m_nSectionHeaderHeights.at(i);
DRect sectionHeaderRect = DRect(0, y, width, iSectionHeaderHeight);
if (iSectionHeaderHeight>0)
{
CAView* pSectionHeaderView = m_pCollectionViewDataSource->collectionViewSectionViewForHeaderInSection(this, sectionHeaderRect.size, i);
if (pSectionHeaderView != NULL)
{
pSectionHeaderView->setDisplayRange(true);
pSectionHeaderView->setFrame(sectionHeaderRect);
insertSubview(pSectionHeaderView, 1);
m_pSectionHeaderViews[i] = pSectionHeaderView;
y += iSectionHeaderHeight;
}
}
y += m_nVertInterval;
unsigned int rowCount = m_nRowsInSections.at(i);
for (int j = 0; j < rowCount; j++)
{
int iHeight = m_nRowHeightss.at(i).at(j);
unsigned int itemCount = m_pCollectionViewDataSource->numberOfItemsInRowsInSection(this, i, j);
unsigned int cellWidth = 0;
if (itemCount>0)
{
cellWidth = (width - m_nHoriInterval) / itemCount - m_nHoriInterval;
}
for (int k = 0; k < itemCount; k++)
{
CAIndexPath3E indexPath = CAIndexPath3E(i, j, k);
DRect cellRect = DRect(m_nHoriInterval + (cellWidth + m_nHoriInterval)*k, y, cellWidth, iHeight);
m_rUsedCollectionCellRects[indexPath] = cellRect;
std::pair<std::map<CAIndexPath3E, CACollectionViewCell*>::iterator, bool> itrResult =
m_mpUsedCollectionCells.insert(std::make_pair(indexPath, (CACollectionViewCell*)NULL));
CC_CONTINUE_IF(!winRect.intersectsRect(cellRect));
CACollectionViewCell* cell = m_pCollectionViewDataSource->collectionCellAtIndex(this, cellRect.size, i, j, k);
if (cell)
{
addSubview(cell);
cell->setFrame(cellRect);
cell->m_nSection = i;
cell->m_nRow = j;
cell->m_nItem = k;
itrResult.first->second = cell;
m_vpUsedCollectionCells.pushBack(cell);
if (m_pCollectionViewDataSource)
{
m_pCollectionViewDataSource->collectionViewWillDisplayCellAtIndex(this, cell, i, j, k);
}
}
}
y += (iHeight + m_nVertInterval);
}
unsigned int iSectionFooterHeight = m_nSectionFooterHeights.at(i);
DRect sectionFooterRect = DRect(0, y, width, iSectionFooterHeight);
if (iSectionFooterHeight > 0)
{
CAView* pSectionFooterView = m_pCollectionViewDataSource->collectionViewSectionViewForFooterInSection(this, sectionFooterRect.size, i);
if (pSectionFooterView != NULL)
{
pSectionFooterView->setDisplayRange(true);
pSectionFooterView->setFrame(sectionFooterRect);
insertSubview(pSectionFooterView, 1);
m_pSectionFooterViews[i] = pSectionFooterView;
y += iSectionFooterHeight;
}
}
//.........这里部分代码省略.........