quick cocos2d-x 使用CCTableView 例子
可以运行,已经测试过了,参考网络上别人的代码,觉得很有用,记录。直接上代码:
发现一个很坑爹的地方,就是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 例子相关推荐
- quick cocos2d x 手机(Android端)启动过程学习
简要学习下quick cocos2d x 在安卓端启动的过程. 首先需要了解一点:quick cocos2d x是依托于Android的activity和GLSurfaceView(继承自Surfac ...
- Cocos2d Lua 入门小例子 一个记忆力游戏
1.游戏说明 一个"记忆"类的比赛游戏.你和电脑对战,轮到谁的回合,谁翻两张牌,如果两张牌一样,就消掉这两张牌,得2分,可以继续翻牌,如果两张牌不一样,就换一个人.直到最后,看谁的 ...
- quick cocos2d x 学习系列之三Armature
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! quic ...
- 设置Cocos2D屏幕横向或纵向的方法
帖子地址 http://www.cocoachina.com/bbs/read.php?tid-14020.html 有时候你会发现使用Cocos2D运行的代码例子全是横屏显示的,如何纵向显示? 横屏 ...
- 8.1-8.31推荐文章汇总
8.1-8.31推荐文章汇总 [移动开发] Cocos2d-x Lua 读取Csv文件,更方便的使用数据 笨木头 Android应用如何支持屏幕多尺寸多分辨率问题 xyz_ ...
- Vue中使用Openlayers加载OSM(Open Street Map)显示街道地图
场景 Openlayers下载与加载geoserver的wms服务显示地图: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/114 ...
- 0bjective-c 之 NSString 使用详解
查找资料的时候发现不错的文章,自己翻译之后分享给大家! 一个基本的该类型字符串例子: @"This is a constant character string object"; ...
- Mysql 大量数据快速导出
mysqldump -u root -p -q -e -t webgps4 dn_location2 > dn_location2.sql mysqldump -u root -p -q -e ...
- scala的三个排序方法
sorted 对一个集合进行自然排序,通过传递隐式的Ordering 无需参数 def sorted[B >: A](implicit ord: Ordering[B]): Repr scala ...
最新文章
- 洛谷P3572 [POI2014]PTA-Little Bird
- [原创]Android Monkey测试工具使用介绍
- 【算法数据结构Java实现】Java实现动态规划(背包问题)
- CodeForces - 1362E Johnny and Grandmaster(贪心+模拟)
- 线性代数导论2——矩阵消元
- spring 基于xml方式配置aop
- 被指涉嫌“二选一” 山姆回应:欢迎良性竞争
- Git-简单安装与使用
- 机器学习笔记(二)——元学习
- ORACLE检查点测试,oracle深度解析检查点
- 2D虚拟试衣——服装变形
- ps css圆形路径文字,ps圆形路径文字怎么做
- amd apu战略_添加内存如何显着提高AMD APU的游戏性能?
- Android中侧滑菜单效果实现(主界面和菜单界面实现平移、缩放、滚动动画)
- Verilog语言- 和c语言的区别
- 什么是dB?为什么要用dB?dB家族成员有哪些?
- c++日期类(Date类)
- 蚂蚁金服又有大调整!集团CEO突然辞职!发生了什么?
- Deformable ConvNets v2算法笔记
- 五大APP安全在线检测平台对比
热门文章
- Test tape drive on Command Line
- c++ 判断nil_golang A=nil,B=A,but B!=nil 这是真的
- 如何将自己写的verilog模块封装成IP核(一)
- 算法导论——二叉查找树
- python自然语言处理课后答案
- python类的参数传递
- 数据集神经网络共同进步
- centos7 mariadb mysql max_connections=214 无法修改的问题
- ctags,cscope,nerdtree,tmux 笔记
- UVA10534-----Wavio Sequence-----动态规划之LIS