在cocos2d-x在CCTableView使用控制

在cocos2d-x在CCTableView使用控制

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

头文件需要继承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.net/117236.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月8日 下午8:00
下一篇 2022年1月8日 下午8:00


相关推荐

  • java 九九乘法表

    java 九九乘法表应该没有比这更更简单的了吧 九九乘法表 for inti 1 i 1 j System out print i x j i j t System out println

    2026年3月18日
    2
  • RBM学习算法

    RBM学习算法RBM 基础 RBM 模型是基于能量的模型 对于一组给定的状态 v h nbsp v h 其能量函数为 E nbsp nbsp v h nbsp i 1 nbsp N nbsp v nbsp nbsp a nbsp i nbsp v nbsp i nbsp nbsp j 1 nbsp N nbsp h nbsp nbsp b nbsp j nbsp h nbsp j nbsp nbsp i 1 nbsp N nbsp v nbsp nbsp nbsp j 1 nbsp N nbsp h nbsp nbsp h nbsp j nbsp w nbsp ji nbsp v nbsp i nbsp nbsp E theta v h displaystyle sum i 1 N v a iv i displaystyle s

    2026年3月17日
    2
  • 【APICloud系列|29】dialogBox模块(对话框)的实现

    【APICloud系列|29】dialogBox模块(对话框)的实现导读 dialogBox 封装了十一种款式的对话框 每一种款式都提供一个接口来调用 开发者可按照各个接口的样式来自定义对话框上的文字 图片 图文等把 dialogBox 模块的 11 个样式分别实现个简单的效果 其中将 alert 方法做了两个样式 如果你觉得我写的样式够丑 请不要喷我 因为我是程序猿 呵呵了 如果你接受了就直接用到你的项目 否则自己再根据官方的文档和结合自己的产品需求 来定义更多高大上的样式 接下来我拿几个我常用的方法给大家简单介绍下 其它的大家可以看看模块的视频效果以后 自

    2026年3月20日
    2
  • The remote server returned an error (415) Cannot process the message

    The remote server returned an error (415) Cannot process the messageICreatedmyWCFServiceanditwasworkingproperlywheniwasmakingitsservicereferenceinmylocalmachine.AlsoitcanworkwellwithtoolWPFTestClient.ButtheproblemcamewhenIinvoked

    2022年5月9日
    60
  • array.sort排序_javascript数组排序

    array.sort排序_javascript数组排序数组sort排序方法Array数组对象中的sort方法是根据数组中数组元素的字符编码进行排序的,所以对数字的排序,会跟想要的升序结果不一样通过设置sort()方法的参数可以按照自定义的排序方式对数组进行排序,sort()方法的参数是一个函数,需要自定义该函数,sort()方法会根据函数的返回结果对数组进行排序functioncompare(a,b){returna-b;}…

    2022年8月12日
    10
  • js 闭包传参_JavaScript闭包演示

    js 闭包传参_JavaScript闭包演示有个网友问了个问题,如下的html,为什么每次输出都是5,而不是点击每个p,就alert出对应的1,2,3,4,5。闭包演示functioninit(){varpAry=document.getElementsByTagName(“p”);for(vari=0;ipAry[i].onclick=function(){alert(i);}}}产品一产品二产品三产品四产品五解决方…

    2022年6月15日
    68

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号