在cocos2d-x中CCTableView控件的使用方法

头文件需要继承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中有什么东西。

当单元格上有按钮时,在实现按钮的方法中:

void menuCallBack(CCObject* object)

{

CCTableViewCell* cell = (CCTableViewCell*)(((CCMenuItemImage*)object)->getParent()->getParent());

CCLog("menu click cell index : %d\n",cell -> getIdx());

}

这样也可以通过单元格上的按钮来获得单元格。

在cocos2d-x中CCTableView控件的使用方法

时间: 2024-12-10 18:24:34

在cocos2d-x中CCTableView控件的使用方法的相关文章

设定当前视图中所有控件字体的方法

     本范例实现的是对界面中所有的控件一次性的设置字体样式.思路是找到父控件,然后遍历子控件.如果子控件是可以修改文字的控件,那么就设置文字.这用到了控件的继承,很多控件都是继承与textview的,所以将控件均转为textview,最后设置字体即可. 布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.

获取屏幕高宽,在代码中设置控件大小的方法

获取屏幕高宽的方法: 1 import android.view.Display; 2 import android.view.WindowManager; 3 WindowManager windowManager = getWindowManager(); 4 Display display = windowManager.getDefaultDisplay(); 5 if(display.getWidth()==480 && display.getHeight()== 272 ||

Win32中TreeView控件的使用方法,类似于资源管理器中文件树形显示方式

首先是头文件,内容如下: #include <tchar.h> #include "..\CommonFiles\CmnHdr.h" #include <Windows.h> #include <WindowsX.h> #include <CommCtrl.h> #include "resource.h" #pragma comment (lib,"comctl32.lib") BOOL InitT

MFC中CListCtrl控件的使用方法

定义一个派生类CViewList 派生于CListCtrl 在要包含该控件的类(CView)中定义一个CViewList类型的变量 CViewList m_wndListView; 在CView响应的WM_CREATE消息中创建该对象,并设置相应的style,如下所示: CRect rectDummy; rectDummy.SetRectEmpty(); LONG lStyle = GetWindowLong(m_wndListView.m_hWnd,GWL_STYLE); lStyle &=

asp.net中验证控件的使用方法

用于检查是否有输入值 :RequiredFieldValidator(必须字段验证) 按设定比较两个输入 :CompareValidator(比较验证) 输入是否在指定范围 :RangeValidator(范围验证) 正则表达式验证控件 :RegularExpressionValidator(正则表达式验证) 自定义验证控件 :CustomValidator(自定义验证) 总结验证结果 :ValidationSummary(验证总结) 1.RequiredFieldValidator(必填字段验

iOS开发中UIDatePicker控件的使用方法简介

iOS上的选择时间日期的控件是这样的,左边是时间和日期混合,右边是单纯的日期模式. 您可以选择自己需要的模式,Time, Date,Date and Time  , Count Down Timer四种模式. 本篇文章简单介绍下PickerDate控件的使用1.新建一个Singe View Application,命名为DatePickDemo,其他设置如图 2.放置控件打开ViewController.xib,拖拽一个DatePicker控件放到界面上,再拖拽一个Button控件放到界面上,双

BootStrap中Affix控件的使用方法及如何保持布局的美观

Affix是BootStrap中的一个很有用的控件,他能够监视浏览器的滚动条的位置并让你的导航始终都在页面的可视区域.一开始的时候,导航在页面中是普通的流式布局,占有文档中固定的位置,当页面滚动的时候,导航就自动变成了固定布局(fixed),始终处于用户的视区,下面来说说他的用法.首先来看看他的实现原理.它是通过实时修改页面元素的class属性来实现的 开始的时候应用affix的元素的class中会自动添加affxi-top属性 当滚动条滚动以至于导航快要到页面顶部的时候这时候在元素的class

duilib中CListUI控件消息处理的方法与技巧

CListUI控件是duilib中比较常用.也是比较遇到问题的控件,使用CListUI可以简单的实现类似各类软件管家软件列表的样式与功能.但是CListUI使用时经常有小伙伴经常为遇到的各种小问题而头疼,下面我们重点总结一下: 常见问题: 1.如何隐藏列表头:List控件属性里面添加header="hidden"即可 2.如何调整列表文字对齐方式: List控件属性里面修改itemalign即可(List控件中列表项的属性配置都是在List属性列表进行的,只不过在普通控件属性的基础上添

ASP.NET中Literal控件的使用方法(用于向网页中动态添加内容)

原文:https://www.jb51.net/article/82855.htm 可以将 Literal 控件用作网页上其他内容的容器.Literal 控件最常用于向网页中动态添加内容.简单的讲,就是可以把 HTML 代码写到 Literal 控件上,直接呈现出来. 一.常见Literal属性 属性 描述 Text 指定 Literal 控件中显示的文本.在用户的浏览器中,这会显示为 HTML. Mode 指定控件如何处理添入其中的标记. 二.基础用法 前台 LiteralTest.aspx