目录

目录

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的简单用法相关推荐

  1. java的setbounds_java Swing组件setBounds()简单用法实例分析

    本文实例讲述了java Swing组件setBounds()简单用法.分享给大家供大家参考,具体如下: 先看API: public void setBounds(Rectangle r) 移动组件并调 ...

  2. cocos2dx lua

    对于游戏公司而言,采用游戏脚本lua.python等进行开发也很常见,但是很多童鞋对脚本并没有很熟悉的概念,本篇则向大家简单介绍脚本的用途以及在Cocos2dx基础用法: Lua和python这些详细 ...

  3. AutoCompleteTextView的简单用法

    2019独角兽企业重金招聘Python工程师标准>>> AutoCompleteTextView的简单用法: 1.android:completionHint  设置下拉菜单中提示的 ...

  4. 17. QTreeView 简单用法

    QTreeView 简单用法 QtreeView 是qt 提供树形显示组件与QStandardItemModel 联合使用,实现数据与视图分离,但是不是严格意义上mvc模式. 参考博客 https:/ ...

  5. Unity3D 基于XLua框架实现Lua组件化开发方式(一)----基于C#调用Lua

    众所周知Unity的开发语言是C#,并不支持Lua语言,为了解决这一问题出现了诸如Xlua.ULua.ToLua等框架来让unity支持lua,由于为了应对众多游戏经常需要解决的热更新问题,出了两种主 ...

  6. Lua C API 的正确用法

    Lua C API 的正确用法 转载于云风的博客 Lua 作为一门嵌入式语言,提供了完备的 C API 供 Lua 代码和宿主程序交互,当然,宿主语言最好是 C 或 C++ .如果是其它语言,比如最近 ...

  7. cocos2dx lua 日志系统

    在实际开发过程中,代码日志是必不可少的系统,尤其是在线上版本中,对于查找问题相当有帮助.但是cocos2dx lua的代码日志是基于lua的print打印,只写在console中,不会长久保存.怎么办 ...

  8. fofa的简单用法语句

    fofa的简单用法 fofa的简单用法语句**** https://www.fofa.so/ 简介 官网这样描述:FOFA是白帽汇推出的一款网络空间资产搜索引擎.它能够帮助用户迅速进行网络资产匹配.加 ...

  9. 浅谈一下对cocos2d-x中九宫格精灵的简单理解和使用

    浅谈一下对cocos2d-x中九宫格精灵的简单理解和使用 首先,使用cocos new命令创建了一个cocos2d-x的C++项目和Lua项目,在生成的HelloWorld中写测试代码. 1.C++代 ...

  10. 反编译工具jad简单用法

    反编译工具jad简单用法 下载地址: [url]http://58.251.57.206/down1?cid=B99584EFA6154A13E5C0B273C3876BD4CC8CE672& ...

最新文章

  1. python跟java 效率_Python与Java:哪个更好,如何选择?
  2. Wireshark数据抓包教程之安装Wireshark
  3. 报告PPT|Python编程之美(45页)
  4. android层叠卡片特效_LINE生日贺卡功能升级 快来试试私人生日贺卡 气球祝福特效...
  5. TFRecord —— tensorflow 下的统一数据存储格式
  6. pandas dataframe创建_Python数据分析基础之Pandas学习 (上)
  7. SpringBoot(一)启动相关
  8. 什么年代了,买硬盘不论T?
  9. ai故障风字体_一分钟就能学会!用PPT做出抖音故障风的字体特效
  10. USBCAN 系列便携式二路 CAN 分析仪、CAN卡的可靠性
  11. fisheye calib视野调整
  12. vue-element-ui组件 layout布局(网格系统)
  13. Redis大数据应用场景
  14. 【iOS】—— 调用手机相机和相册
  15. Jmeter beanshell语法
  16. VC 6.0在链接Link时经常卡死问题
  17. Github搭建个人博客(2019最新版,亲测)
  18. 《我的世界》Python编程入门(5) 租金游戏
  19. Spring Cloud 系列之 ZooKeeper 注册中心
  20. 汽车tbox介绍、新能源tbox,汽车tbox,新能源上的车联网终端

热门文章

  1. 尚学堂·百战程序员--java300集视频笔记
  2. Proxmark3 Easy破解门禁卡(转载 珍贵知识防止掉失)
  3. PHP高并发场景的三种解决方案
  4. 定时任务Quartz 之 cron表达式(时间表达式)
  5. 用html制作学生个人博客,网页制作论坛(学生个人网页制作代码)
  6. 《社会调查数据管理——基于Stata 14管理CGSS数据》一3.4 Stata的一些术语及使用通则...
  7. 计算机需要无线网卡进行网络连,无线网卡
  8. 双厨狂喜!海盗船机械键盘联名石之海,一起欧拉欧拉!
  9. 【程序】Xilinx FPGA将DDR3内存转换为W25Q256的SPI接口,供STM32单片机调用,产生容量为256MB的USB U盘设备
  10. 高速公路综合信息管理系统