Cocos2d-x教程(23)-CCTableView使用详解

欢迎加入 Cocos2d-x 交流群: 193411763

转载时请注明原文地址:http://blog.csdn.net/u012945598/article/details/20901645

源码下载地址:http://download.csdn.net/detail/u012945598/7027171


CCTableView的功能基本与iOS的UITableView类似,在学习如何使用CCTableView之前,我们需要先来了解一下CCTableView的一些特点。

CCTableView继承于CCScrollView,所以它具备了能够触摸滑动的功能,CCTabelView就像是一个大容器,内部由若干个CCTableViewCell组成,就好像ListView控件内部也是由若干个item组成一样,但tableView与ListView最大的不同之处在于,tableView中的cell是可以重用的,而ListView中的item在初始化时就需要创建所有item。

举个例子来说,比如我们需要在一个tableView中创建20个cell,在ListView中创建20个item,但是我们的tableview与listview的大小,也就是我们的可视区域只能够显示5个cell或item,这个时候,我们在对cell和item初始化的时候,就体现出了talbieview与listview的不同,在Listview中,初始化时会将20个item对象全部创建,并将他们全部加载,而在tableview中,初始化只会创建5个cell对象,也就是只做了5次 cell=new CCTableviewCell(),这是因为在talbieview中存在一个重用队列,在开始的时候,这个重用队列中是没有任何东西的,每当你滑动tableview直到一个cell被滑到了不可见的区域,这个cell就会被加入到重用队列中,然后当有一个新的cell需要被显示出来时,我们就会使用 table->dequeueCell()方法,在重用队列中获取一个cell,这样的话就避免了创建一个新的cell并为它开辟内存空间。但是需要注意的是,虽然cell被读取了出来,但是这个cell上面的元素我们仍然需要重新去设置,否则我们就会遇到tableview中cell的位置错乱的问题。下面我们通过代码来学习这一过程。

新建一个项目,笔者直接在HelloWorld中添加代码:

HelloWorld.h文件


.cpp文件


Cocos2d-x教程(23)-CCTableView使用详解_第1张图片

效果图如下:

Cocos2d-x教程(23)-CCTableView使用详解_第2张图片

你可能感兴趣的:(cocos2d-x,CCTableView,马宗扬)