cocos-lua3.17 Lua tablrView工具类

cocos-lua3.17 Lua tablrView工具类,第1张

概述local MyTableView = class("MyTableView") MyTableView.__index = MyTableView MyTableView.property = {} --这里是为了让layer能调用MyTableView的方法 function MyTableView.extend(target) local t = tolua.getpeer(target) local MytableVIEw = class("MytableVIEw") MytableVIEw.__index = MytableVIEw

MytableVIEw.property = {}
--这里是为了让layer能调用MytableVIEw的方法 function MytableVIEw.extend(target) local t = tolua.getpeer(target) if not t then t = {} tolua.setpeer(target,t) end setMetatable(t,MytableVIEw) return target end
--滚动事件 function MytableVIEw.scrollVIEwDIDScroll(vIEw) --print("滚动事件") end
function MytableVIEw.scrollVIEwDIDZoom(vIEw) print("scrollVIEwDIDZoom") end
--cell点击事件 function MytableVIEw.tableCelltouched(table,cell) print("点击了cell:" .. cell:getIDx()) end
--cell的大小,注册事件就能直接影响界面,不需要主动调用 function MytableVIEw.cellSizefortable(table,IDx) return MytableVIEw.property.cellSize or cc.p(150,150) end
--显示出可视部分的界面,出了裁剪区域的cell就会被复用 function MytableVIEw.tableCellAtIndex(table,IDx) local strValue = string.format("%d",IDx) print("数据加载"..strValue) local cell = table:dequeueCell() local label = nil if nil == cell then print("创建了新的cell") cell = cc.tableVIEwCell:new()
--添加cell内容 label = cc.Label:createWithSystemFont(strValue,"Helvetica",40) label:setposition(cc.p(0,0)) label:setAnchorPoint(cc.p(0,0)) label:setcolor(cc.c3b(255,0)) label:setTag(123) cell:addChild(label) else print("使用已经创建过的cell") label = cell:getChildByTag(123) if nil ~= label then label:setString(strValue) end end
return cell end
--设置cell个数,注册就能生效,不用主动调用 function MytableVIEw.numberOfCellsIntableVIEw(table) return MytableVIEw.property.cellNum or 100 end
function MytableVIEw:init()
local winSize = cc.Director:getInstance():getWinSize() if MytableVIEw.property.HORIZONTAL then --创建tableVIEw tableSize = MytableVIEw.property.tableSize or cc.size(600,200) local tableVIEw = cc.tableVIEw:create(tableSize) --设置滚动方向 水平滚动 tableVIEw:setDirection(cc.SCRolLVIEW_DIRECTION_HORIZONTAL) tableVIEw:setposition(cc.p(20,winSize.height / 2 - 150)) tableVIEw:setDelegate() self:addChild(tableVIEw) --registerScriptHandler functions must be before the reloadData funtion
--cell个数 tableVIEw:registerScriptHandler(MytableVIEw.numberOfCellsIntableVIEw,cc.NUMBER_OF_CELLS_IN_tableVIEW) --滚动事件 tableVIEw:registerScriptHandler(MytableVIEw.scrollVIEwDIDScroll,cc.SCRolLVIEW_SCRIPT_SCRolL) tableVIEw:registerScriptHandler(MytableVIEw.scrollVIEwDIDZoom,cc.SCRolLVIEW_SCRIPT_ZOOM) --cell点击事件 tableVIEw:registerScriptHandler(MytableVIEw.tableCelltouched,cc.tableCELL_touchED) --cell尺寸、大小 tableVIEw:registerScriptHandler(MytableVIEw.cellSizefortable,cc.tableCELL_SIZE_FOR_INDEX) --显示出可视部分的cell tableVIEw:registerScriptHandler(MytableVIEw.tableCellAtIndex,cc.tableCELL_SIZE_AT_INDEX) --调用这个才会显示界面 tableVIEw:reloadData() else ----------------------------------------------------------- --跟上面差不多,这里是创建一个“垂直滚动”的tableVIEw tableSize = MytableVIEw.property.tableSize or cc.size(600,200) local tableVIEw = cc.tableVIEw:create(tableSize) tableVIEw:setDirection(cc.SCRolLVIEW_DIRECTION_VERTICAL) tableVIEw:setposition(cc.p(winSize.wIDth - 150,winSize.height / 2 - 150)) tableVIEw:setDelegate() tableVIEw:setVerticalFillOrder(cc.tableVIEW_FILL_topDOWN) self:addChild(tableVIEw) tableVIEw:registerScriptHandler(MytableVIEw.scrollVIEwDIDScroll,cc.SCRolLVIEW_SCRIPT_ZOOM) tableVIEw:registerScriptHandler(MytableVIEw.tableCelltouched,cc.tableCELL_touchED) tableVIEw:registerScriptHandler(MytableVIEw.cellSizefortable,cc.tableCELL_SIZE_FOR_INDEX) tableVIEw:registerScriptHandler(MytableVIEw.tableCellAtIndex,cc.tableCELL_SIZE_AT_INDEX) tableVIEw:registerScriptHandler(MytableVIEw.numberOfCellsIntableVIEw,cc.NUMBER_OF_CELLS_IN_tableVIEW) tableVIEw:reloadData() end
return true end
--这里是为了让layer能调用MytableVIEw的方法 --这里的四个属性 -- cellSize -- cellNum -- HORIZONTAL -- tableSize function MytableVIEw.create(args) MytableVIEw.property = args local layer = MytableVIEw.extend(cc.Layer:create()) if nil ~= layer then layer:init() end
return layer end

return MytableVIEw 总结

以上是内存溢出为你收集整理的cocos-lua3.17 Lua tablrView工具类全部内容,希望文章能够帮你解决cocos-lua3.17 Lua tablrView工具类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/999960.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存