按照教程把所有代码都写好了,能显示,但是所有cell重叠在一起,不知道为什么!!!!!求帮助
部分代码:
bool HeroView::init()
{
if (!Layer::init()) {
return false;
}
Size size = Director::getInstance()->getVisibleSize();
log(“screen width: %f + height: %f”,size.width, size.height);
auto pTableView = TableView::create(this, size);
pTableView->setDirection(ScrollView::Direction::VERTICAL);
pTableView->setPosition(Point::ZERO);
pTableView->setDelegate(this);
pTableView->setVerticalFillOrder(TableView::VerticalFillOrder::TOP_DOWN);
this->addChild(pTableView);
pTableView->reloadData();
return true;
}
void HeroView::tableCellTouched(TableView *table, TableViewCell *cell)
{
log(“cc click: %ld” , cell->getIdx());
}
cocos2d::Size HeroView::tableCellSizeForIndex(TableView *table)
{
return Size(Director::getInstance()->getVisibleSize().width, 100);
}
TableViewCell* HeroView::tableCellAtIndex(TableView *table, ssize_t idx)
{
auto pString = cocos2d::String::createWithFormat("%ld", idx+1);
log(“cell idx: %ld”,idx);
TableViewCell *pCell = table->dequeueCell();
if (!pCell) {
log(“cell create idx: %ld”,idx);
pCell = new TableViewCell();
pCell->autorelease();
auto pSprite = CCSprite::create(StringUtils::format(“new%ld.png”,++idx), Rect(0, 0, Director::getInstance()->getVisibleSize().width, 100));
pSprite->setAnchorPoint(Point::ANCHOR_TOP_LEFT);
pSprite->setPosition(Point::ZERO);
pCell->addChild(pSprite);
auto cLabel = Label::createWithSystemFont(pString->getCString(), "Arial", 20.0);
cLabel->setPosition(Point::ZERO);
cLabel->setAnchorPoint(Point::ANCHOR_TOP_LEFT);
cLabel->setTag(123);
pCell->addChild(cLabel);
}
else
{
log("cell exist z: %d",pCell->getLocalZOrder());
log(“cell exist idx: %ld”,idx);
auto pLabel = (Label*)pCell->getChildByTag(123);
pLabel->setString(pString->getCString());
}
return pCell;
}
long HeroView::numberOfCellsInTableView(TableView *table)
{
return 4;
};