Cocos2dx-lua组件tableView的简单用法
目录
目录
1、博客介绍
2、内容
.创建tableView
.设置tableView相关事件
.事件方法的设置
.数据刷新
.可点击的tableView
3、推送
4、结语
1、博客介绍
本篇作为cocos2dx学习笔记之一,浅谈一下tableView组件的一些用法,以做记录之用
2、内容
.创建tableView
-- 创建tablView 参数为tableView的尺寸local m_tableView = cc.TableView:create(cc.size(480,320))-- 设置回弹m_tableView:setBounceable(false)-- 设置滑动方向 HORIZONTAL:横向 VERTICAL:纵向m_tableView:setDirection(cc.SCROLLVIEW_DIRECTION_HORIZONTAL)-- 设置排列方式 TOP_DOWN:idx序号从小到大 BOTTOM_UP:idx序号从大到小m_tableView:setVerticalFillOrder(cc.TABLEVIEW_FILL_TOPDOWN)-- 设置事件m_tableView:setDelegate()-- 添加到面板menuLayer:addChild(m_tableView)
创建的方式和主要属性都在注释内有介绍
.设置tableView相关事件
-- table触摸回调 设置后每次点击在tableView区域内都会调用一次tableCellTouched方法m_tableView:registerScriptHandler(tableCellTouched, cc.TABLECELL_TOUCHED) -- 在创建cell的时候会调用,从cellSizeForTable方法内获取cell的尺寸 m_tableView:registerScriptHandler(cellSizeForTable, cc.TABLECELL_SIZE_FOR_INDEX); -- 创建cell的调用,在tableCellAtIndex方法内设置cell的生成 m_tableView:registerScriptHandler(tableCellAtIndex, cc.TABLECELL_SIZE_AT_INDEX); -- numberOfCellsInTableView方法内返回tableView需要生成的cell数量m_tableView:registerScriptHandler(numberOfCellsInTableView, cc.NUMBER_OF_CELLS_IN_TABLEVIEW); --cell数量
tableView主要的相关事件就是以上四个
.事件方法的设置
-- 每次触摸tableView调用
function tableCellTouched(view, cell)end-- 返回cell的尺寸 width,height
function cellSizeForTable(view, idx)return 120, 102
end-- 返回一个cell
function tableCellAtIndex(view, idx)local cell = view:dequeueCell()if not cell thencell = cc.TableViewCell:new()elsecell:removeAllChildren()endlocal img = cc.Sprite:create("test.png")img:setPosition(60,0)cell:addChild(img,100)return cell
end-- tableView内Cell的总数
function numberOfCellsInTableView(view)return 10
end
以上就是四个事件回调方法的最基本设置
.数据刷新
m_tableView:reloadData();
所有的做完后必须调用一下数据的刷新,tableView才能正确的显示出来,以上是这个简单小例的效果,一个滑动图片的列表
.可点击的tableView
接下来我们完善一下我们的例子,我们将cell改为可点击的button,并且加上点击反馈和点击事件
-- 返回一个cell
function tableCellAtIndex(view, idx)local cell = view:dequeueCell()if not cell thencell = cc.TableViewCell:new()elsecell:removeAllChildren()endlocal path = "test.png"local button = ccui.Button:create(path,path,path)local function onTouchIcon(sender, eventType)if eventType == ccui.TouchEventType.began thensender:setScale(0.97)elseif eventType == ccui.TouchEventType.ended thensender:setScale(1)local d = cc.pGetDistance(sender:getTouchBeganPosition(), sender:getTouchEndPosition())if d < 30 thenprint("我被触摸了")elseprint("我被滑动了")endelseif eventType == ccui.TouchEventType.canceled thensender:setScale(1)endendbutton:addTouchEventListener(onTouchIcon)button:setSwallowTouches(false)button:setPosition(60,0)cell:addChild(button,100)return cell
end
只需要修改一下tableCellAtIndex方法就可以了,在新修改的方法里,我们将原本的精灵替换为Button,并且给button注册了监听事件,在点击的时候我们会有一个缩放来给用户反馈,并且添加了一个距离判断d,因为我们滑动的同时也可能点击到图片,我们需要判断一下用户的操作到底是点击按钮还是滑动view。
3、推送
Github:https://github.com/KingSun5
4、结语
若是觉得博主的文章写的不错,不妨关注一下博主,点赞一下博文,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。
QQ交流群:806091680(Chinar)
该群为CSDN博主Chinar所创,推荐一下!我也在群里!
本文属于原创文章,转载请著名作者出处并置顶!!!!
Cocos2dx-lua组件tableView的简单用法相关推荐
- java的setbounds_java Swing组件setBounds()简单用法实例分析
本文实例讲述了java Swing组件setBounds()简单用法.分享给大家供大家参考,具体如下: 先看API: public void setBounds(Rectangle r) 移动组件并调 ...
- cocos2dx lua
对于游戏公司而言,采用游戏脚本lua.python等进行开发也很常见,但是很多童鞋对脚本并没有很熟悉的概念,本篇则向大家简单介绍脚本的用途以及在Cocos2dx基础用法: Lua和python这些详细 ...
- AutoCompleteTextView的简单用法
2019独角兽企业重金招聘Python工程师标准>>> AutoCompleteTextView的简单用法: 1.android:completionHint 设置下拉菜单中提示的 ...
- 17. QTreeView 简单用法
QTreeView 简单用法 QtreeView 是qt 提供树形显示组件与QStandardItemModel 联合使用,实现数据与视图分离,但是不是严格意义上mvc模式. 参考博客 https:/ ...
- Unity3D 基于XLua框架实现Lua组件化开发方式(一)----基于C#调用Lua
众所周知Unity的开发语言是C#,并不支持Lua语言,为了解决这一问题出现了诸如Xlua.ULua.ToLua等框架来让unity支持lua,由于为了应对众多游戏经常需要解决的热更新问题,出了两种主 ...
- Lua C API 的正确用法
Lua C API 的正确用法 转载于云风的博客 Lua 作为一门嵌入式语言,提供了完备的 C API 供 Lua 代码和宿主程序交互,当然,宿主语言最好是 C 或 C++ .如果是其它语言,比如最近 ...
- cocos2dx lua 日志系统
在实际开发过程中,代码日志是必不可少的系统,尤其是在线上版本中,对于查找问题相当有帮助.但是cocos2dx lua的代码日志是基于lua的print打印,只写在console中,不会长久保存.怎么办 ...
- fofa的简单用法语句
fofa的简单用法 fofa的简单用法语句**** https://www.fofa.so/ 简介 官网这样描述:FOFA是白帽汇推出的一款网络空间资产搜索引擎.它能够帮助用户迅速进行网络资产匹配.加 ...
- 浅谈一下对cocos2d-x中九宫格精灵的简单理解和使用
浅谈一下对cocos2d-x中九宫格精灵的简单理解和使用 首先,使用cocos new命令创建了一个cocos2d-x的C++项目和Lua项目,在生成的HelloWorld中写测试代码. 1.C++代 ...
- 反编译工具jad简单用法
反编译工具jad简单用法 下载地址: [url]http://58.251.57.206/down1?cid=B99584EFA6154A13E5C0B273C3876BD4CC8CE672& ...
最新文章
- python跟java 效率_Python与Java:哪个更好,如何选择?
- Wireshark数据抓包教程之安装Wireshark
- 报告PPT|Python编程之美(45页)
- android层叠卡片特效_LINE生日贺卡功能升级 快来试试私人生日贺卡 气球祝福特效...
- TFRecord —— tensorflow 下的统一数据存储格式
- pandas dataframe创建_Python数据分析基础之Pandas学习 (上)
- SpringBoot(一)启动相关
- 什么年代了,买硬盘不论T?
- ai故障风字体_一分钟就能学会!用PPT做出抖音故障风的字体特效
- USBCAN 系列便携式二路 CAN 分析仪、CAN卡的可靠性
- fisheye calib视野调整
- vue-element-ui组件 layout布局(网格系统)
- Redis大数据应用场景
- 【iOS】—— 调用手机相机和相册
- Jmeter beanshell语法
- VC 6.0在链接Link时经常卡死问题
- Github搭建个人博客(2019最新版,亲测)
- 《我的世界》Python编程入门(5) 租金游戏
- Spring Cloud 系列之 ZooKeeper 注册中心
- 汽车tbox介绍、新能源tbox,汽车tbox,新能源上的车联网终端
热门文章
- 尚学堂·百战程序员--java300集视频笔记
- Proxmark3 Easy破解门禁卡(转载 珍贵知识防止掉失)
- PHP高并发场景的三种解决方案
- 定时任务Quartz 之 cron表达式(时间表达式)
- 用html制作学生个人博客,网页制作论坛(学生个人网页制作代码)
- 《社会调查数据管理——基于Stata 14管理CGSS数据》一3.4 Stata的一些术语及使用通则...
- 计算机需要无线网卡进行网络连,无线网卡
- 双厨狂喜!海盗船机械键盘联名石之海,一起欧拉欧拉!
- 【程序】Xilinx FPGA将DDR3内存转换为W25Q256的SPI接口,供STM32单片机调用,产生容量为256MB的USB U盘设备
- 高速公路综合信息管理系统