使用ccTableView帧数立马下降

最近游戏需要使用到表格视图 就使用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 希望大家指导下 谢谢!!

居然问题就出在
void RankingTableViewCell::setDataCallback(CCDictionary *dicData)
{

}
这个函数里面

因为我在里面新创建了一个Sprite当做背景

导致了在滑动的时候都重复创建这个背景
所以帧数才下降

看来以后创建需要占据内存的东西要注意一下了
修改完代码 发现怎么滑动都不影响了 看来细节方面注意得不够好。。。。

一个习惯:更新单元格的时候,需要先判断新的数据和当前显示的数据是否一样,如果一样就不刷新.
void RankingTableViewCell::setDataCallback(CCDictionary *dicData)
{
// if (self.data self.data.isEqual(dicData) {
// return;
// }
}