前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在cocos2d-x在CCTableView使用控制

在cocos2d-x在CCTableView使用控制

作者头像
全栈程序员站长
发布2022-07-06 10:32:34
3330
发布2022-07-06 10:32:34
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是全栈君。

头文件需要继承CCTableViewDataSource和CCTableViewDelegate //CCScrollViewDelegate virtual void scrollViewDidScroll(CCScrollView* view){}; virtual void scrollViewDidZoom(CCScrollView* view){};

//CCTableViewDelegate virtual void tableCellTouched(CCTableView* table, CCTableViewCell* cell);//当点击单元格格时触发的方法 //单元格中CCTableViewCell类中有一个属性idx,能够推断点击的这个单元格的索引 virtual void tableCellHighlight(CCTableView* table,CCTableViewCell* cell);//按下去的时候就是高亮显示,这里能够设置高 virtual void tableCellUnhighlight(CCTableView* table,CCTableViewCell* cell);//松开的时候,取消高亮状态

//CCTableViewDataSource virtual unsigned int numberOfCellsInTableView(CCTableView* table);//返回这个表格有多少单元格 virtual CCSize cellSizeForTable(CCTableView* table);//返回每一个Cell的大小 virtual CCTableViewCell* tableCellAtIndex(CCTableView* table,unsigned int idx); //生成单元格。即单元格的内容

//实例 在init方法中: CCSize winSize = CCDirector::sharedDirector() -> getWinSize(); CCTableView* tableView = CCTableView::create(this,CCSizeMake(winSize.width/2,winSize.height/3)); tableView -> setDirection(kCCScrollViewDirectionVertical); tableView -> setPosition(ccp(winSize.width * 0.07,winSize.width * 0.35)); tableView -> setDelegate(this); tableView -> setTag(802); tableView -> setAnchorPoint(CCPointZero); tableView -> setTouchPriority(-129); this -> addChild(tableView); //这里为什么要设置此表格的触摸优先级为-129呢? 假设不这么办的话,当这个层的触摸开启的时候,滑动表格中的单元格不会滑动,把表格的触摸给吞噬掉了,所以要这样设置。

那么单元格的内容是什么呢? 以下看这种方法: CCTableViewCell* tableCellAtIndex(CCTableView* table,unsigned int idx) { CCTableViewCell* cell = table -> dequeueCell(); if(!cell) { cell = new CCTableViewCell(); cell -> autorelease(); } cell -> removeAllChildrenWithCleanup(true); CCLabelTTF* label = CCLabelTTF::create(“abc”,”Arial”,24); label -> setPosition(ccp(150,30)); cell -> addChild(label);

return cell; } //这样单元格中就有了内容 那么如何获取到单元格的内容呢?看以下这种方法 void tableCellTouched(CCTableView* table, CCTableViewCell* cell) 当点击单元格时,会运行这种方法,cell中有个属性getIdx(),能够推断点击的单元格是第几个单元格,当然。通过cell->getChildByTag

(),能够捕获到cell中有什么东西。 当单元格上有button时,在实现button的方法中: void menuCallBack(CCObject* object) { CCTableViewCell* cell = (CCTableViewCell*)(((CCMenuItemImage*)object)->getParent()->getParent()); CCLog(“menu click cell index : %d\n”,cell -> getIdx()); } 这样也能够通过单元格上的button为了得到单位格。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117236.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月8,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档