最近游戏需要使用到表格视图 就使用CCTableView这个类 我是自定义创建的Cell 内存方面是没有问题的 使用过程中 发现显示没有问题 内存也没有增加,但是游戏的帧数迅速降低 我是用ip4测试的
一滑动TableView 帧数立马下降到40 再尝试就下降到25左右了 严重影响用户体验 测试使用Ipad2 发现帧数下降的速度明显降低 但还是可以感觉到帧数的下降
一旦我跳转到其他的Scene 帧数马上回复到正常 整个过程中 内存没有增加 一直保持平稳的状态 贴上cell的代码
//在这里产生自定义的单元格及内容
CCTableViewCell *pCell = table->dequeueCell();
RankingTableViewCell *cell = dynamic_cast<RankingTableViewCell *>(pCell);
if (!cell) {
cell = new RankingTableViewCell();
cell->autorelease();
}
。。。。。。
cell->setDataCallback(PDicRankingData);
部分代码省略 PDicRankingData是一个dictionary传递数据给cell显示的
RankingTableViewCell::RankingTableViewCell()
{
//cup
CCSprite *pSprCup = CCSprite::createWithSpriteFrameName(c_cupName_champion);
addChild(pSprCup);
pSprCup->setPosition(p_label_position);
m_pSprCup = pSprCup;
//ranking
CCLabelTTF *pLblRanking = CCLabelTTF::create("0", "Verdana", 50);
pLblRanking->setPosition(p_label_position);
addChild(pLblRanking,5);
m_pLblRanking = pLblRanking;
//
CCSprite *pSprIcon = CCSprite::createWithSpriteFrameName("Monkey_up.png");
addChild(pSprIcon);
pSprIcon->setPosition(p_icon_position);
pSprIcon->setScale(0.6);
m_pSprIcon = pSprIcon;
//
CCLabelTTF *pLblName = CCLabelTTF::create("0", "Verdana", 40.f);
addChild(pLblName);
pLblName->setPosition(p_name_position);
m_pLblName = pLblName;
//
CCLabelTTF *pLblScore= CCLabelTTF::create("0", "Verdana", 35);
addChild(pLblScore);
pLblScore->setPosition(p_score_position);
m_pLblScore = pLblScore;
}
cell里面的控件都是在构造函数里面初始化的 用得的是create方法 没有创建折构方法
void RankingTableViewCell::setDataCallback(CCDictionary *dicData)
{
}
里面就是改变控件的显示数据 没有什么内容就不贴出来
以前都是做应用的 现在转做游戏 第一次接触ccTableView 希望大家指导下 谢谢!!