可以运行,已经测试过了,参考网络上别人的代码,觉得很有用,记录。直接上代码:

发现一个很坑爹的地方,就是tableview定size的宽高,与tableview的cell的高宽是恰恰相反。。这个API让我有点凌乱..

(注意方法声明的时候,用的.跟:  不可以混用。不然就错了~~)

 1 --
 2 -- Date: 2014-11-13 15:55:20
 3 --
 4 --调用代码: local rlayer = require("app.scenes.TableViewLayer").new()
 5         --  rlayer:setAnchorPoint(ccp(0, 0))
 6         --  rlayer:setPosition(ccp(0, 0))
 7         --  self:addChild(rlayer)
 8 local TableViewLayer = class("TableViewLayer", function()
 9     return display.newLayer()
10 end)
11
12 function TableViewLayer:ctor()
13     self:onEnter()
14 end
15
16 function TableViewLayer.scrollViewDidScroll(view)
17     print("scrollViewDidScroll")
18 end
19
20 function TableViewLayer.scrollViewDidZoom(view)
21     print("scrollViewDidZoom")
22 end
23
24 function TableViewLayer.tableCellTouched(table,cell)
25     print("cell touched at index: " .. cell:getIdx())
26 end
27
28 function TableViewLayer.cellSizeForTable(table,idx)
29     return 30,60   --返回tableview中一个单位cell的高,宽
30 end
31
32 function TableViewLayer.tableCellAtIndex(table, idx)
33     local strValue = string.format("%d",idx)
34     local cell = table:dequeueCell()
35     local label = nil
36     if nil == cell then
37         cell = CCTableViewCell:new()
38         --底层
39         local table_bg = CCSprite:create("res/table_bg.png")
40         table_bg:setAnchorPoint(CCPointMake(0,0))
41         table_bg:setPosition(CCPointMake(0, 0))
42         cell:addChild(table_bg)
43
44         --图片层
45         local sprite = CCSprite:create("res/icon.png")
46         sprite:setAnchorPoint(CCPointMake(0,0))
47         sprite:setPosition(CCPointMake(0, 0))
48         cell:addChild(sprite)
49
50         --文字层
51         label = CCLabelTTF:create(strValue, "Helvetica", 20.0)
52         label:setPosition(CCPointMake(0,0))
53         label:setAnchorPoint(CCPointMake(0,0))
54         label:setTag(123)
55         cell:addChild(label)
56     else
57         label = tolua.cast(cell:getChildByTag(123),"CCLabelTTF")
58         if nil ~= label then
59             label:setString(strValue)
60         end
61     end
62
63     return cell
64 end
65
66 --tableview中的cell个数
67 function TableViewLayer.numberOfCellsInTableView(table)
68    return 25
69 end
70
71 function TableViewLayer:onEnter()
72     local table_view = CCTableView:create(CCSizeMake(60, 500))  --设定tableview的宽、高。tableview的大小决定滑动tableview的可触摸区域
73     table_view:setAnchorPoint(ccp(0, 1))
74     table_view:setDirection(kCCScrollViewDirectionVertical)
75     table_view:setPosition(CommonAPI:getCenterX()/2,CommonAPI:getCenterY()/2)
76     self:addChild(table_view)
77
78     table_view:setVerticalFillOrder(kCCTableViewFillTopDown) --kCCTableViewFillBottomUp
79     table_view:registerScriptHandler(self.scrollViewDidScroll,CCTableView.kTableViewScroll)
80     table_view:registerScriptHandler(self.scrollViewDidZoom,CCTableView.kTableViewZoom)
81     table_view:registerScriptHandler(self.tableCellTouched,CCTableView.kTableCellTouched)
82     table_view:registerScriptHandler(self.cellSizeForTable,CCTableView.kTableCellSizeForIndex)
83     table_view:registerScriptHandler(self.tableCellAtIndex,CCTableView.kTableCellSizeAtIndex)
84     table_view:registerScriptHandler(self.numberOfCellsInTableView,CCTableView.kNumberOfCellsInTableView)
85     table_view:reloadData()
86 end
87
88 return TableViewLayer

over~

注:在使用过程中,向下拖拉进度条太大力的时候,会发现tableview的单元cell乱序的情况。

解决办法是:去除我上面贴的代码的36行判断语句。

转载于:https://www.cnblogs.com/vokie/p/4095453.html

quick cocos2d-x 使用CCTableView 例子相关推荐

  1. quick cocos2d x 手机(Android端)启动过程学习

    简要学习下quick cocos2d x 在安卓端启动的过程. 首先需要了解一点:quick cocos2d x是依托于Android的activity和GLSurfaceView(继承自Surfac ...

  2. Cocos2d Lua 入门小例子 一个记忆力游戏

    1.游戏说明 一个"记忆"类的比赛游戏.你和电脑对战,轮到谁的回合,谁翻两张牌,如果两张牌一样,就消掉这两张牌,得2分,可以继续翻牌,如果两张牌不一样,就换一个人.直到最后,看谁的 ...

  3. quick cocos2d x 学习系列之三Armature

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! quic ...

  4. 设置Cocos2D屏幕横向或纵向的方法

    帖子地址 http://www.cocoachina.com/bbs/read.php?tid-14020.html 有时候你会发现使用Cocos2D运行的代码例子全是横屏显示的,如何纵向显示? 横屏 ...

  5. 8.1-8.31推荐文章汇总

    8.1-8.31推荐文章汇总 [移动开发] Cocos2d-x Lua 读取Csv文件,更方便的使用数据        笨木头 Android应用如何支持屏幕多尺寸多分辨率问题        xyz_ ...

  6. Vue中使用Openlayers加载OSM(Open Street Map)显示街道地图

    场景 Openlayers下载与加载geoserver的wms服务显示地图: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/114 ...

  7. 0bjective-c 之 NSString 使用详解

    查找资料的时候发现不错的文章,自己翻译之后分享给大家! 一个基本的该类型字符串例子: @"This is a constant character string object"; ...

  8. Mysql 大量数据快速导出

    mysqldump -u root -p -q -e -t webgps4 dn_location2 > dn_location2.sql mysqldump -u root -p -q -e ...

  9. scala的三个排序方法

    sorted 对一个集合进行自然排序,通过传递隐式的Ordering 无需参数 def sorted[B >: A](implicit ord: Ordering[B]): Repr scala ...

最新文章

  1. 洛谷P3572 [POI2014]PTA-Little Bird
  2. [原创]Android Monkey测试工具使用介绍
  3. 【算法数据结构Java实现】Java实现动态规划(背包问题)
  4. CodeForces - 1362E Johnny and Grandmaster(贪心+模拟)
  5. 线性代数导论2——矩阵消元
  6. spring 基于xml方式配置aop
  7. 被指涉嫌“二选一” 山姆回应:欢迎良性竞争
  8. Git-简单安装与使用
  9. 机器学习笔记(二)——元学习
  10. ORACLE检查点测试,oracle深度解析检查点
  11. 2D虚拟试衣——服装变形
  12. ps css圆形路径文字,ps圆形路径文字怎么做
  13. amd apu战略_添加内存如何显着提高AMD APU的游戏性能?
  14. Android中侧滑菜单效果实现(主界面和菜单界面实现平移、缩放、滚动动画)
  15. Verilog语言- 和c语言的区别
  16. 什么是dB?为什么要用dB?dB家族成员有哪些?
  17. c++日期类(Date类)
  18. 蚂蚁金服又有大调整!集团CEO突然辞职!发生了什么?
  19. Deformable ConvNets v2算法笔记
  20. 五大APP安全在线检测平台对比

热门文章

  1. Test tape drive on Command Line
  2. c++ 判断nil_golang A=nil,B=A,but B!=nil 这是真的
  3. 如何将自己写的verilog模块封装成IP核(一)
  4. 算法导论——二叉查找树
  5. python自然语言处理课后答案
  6. python类的参数传递
  7. 数据集神经网络共同进步
  8. centos7 mariadb mysql max_connections=214 无法修改的问题
  9. ctags,cscope,nerdtree,tmux 笔记
  10. UVA10534-----Wavio Sequence-----动态规划之LIS