微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cocos2dx lua tableview

function tableview()

local origin = CCEGLView:sharedOpenGLView():getVisibleSize();

local TestLayer = cclayer:create()

local NodeBg=CCNode:create();

NodeBg:setPosition(ccp(10,origin.height/8))

local data = {}

for i = 1,10 do table.insert(data,"Data"..i) end --装入tableview的数据源

local h = LuaEventHandler:create(function(fn,table,a1,a2)

local r

if fn == "cellSize" then

r = CCSizeMake(480,100) --每格的尺寸

elseif fn == "cellAtIndex" then

-- 请求“格”对象,a1是格索引(从0开始),a2是缓存的格对象(可能为空)

-- 在此建立“格”对象并填充其要显示内容

if not a2 then

a2 = CCTableViewCell:create()

-- Build cell struct,just like load ccbi or add sprite

-- 建立“格”对象的结构,不要在此设定其显示内容

a2:addChild(cclabelTTF:create(""..a1,"Arial",20),1)

--这里就相当cell容器,可以装入ccbi层、精灵、菜单等控件

local spriteDemo = CCScale9Sprite:create("80.png");

spriteDemo:setAnchorPoint(ccp(0,0))

spriteDemo:setContentSize(CCSizeMake(300,100))

a2:addChild(spriteDemo)

end

-- 修改“格”对象的内容

tolua.cast(a2:getChildByTag(1),"cclabelTTF"):setString(data[a1 + 1])

r = a2

a2:setTag(a1+1);

elseif fn == "numberOfCells" then

r = #data

-- Cell events:

-- 表格事件:

elseif fn == "cellTouched" then

print("按了:".. a1:getTag()) -- A cell was touched,a1 is cell that be touched. This is not necessary.

elseif fn == "cellTouchBegan" then

print("按下".. a1:getTag()) -- A cell is touching,a1 is cell,a2 is CCTouch

elseif fn == "cellTouchEnded" then

print("按完".. a1:getTag()) -- A cell was touched,a2 is CCTouch

elseif fn == "cellHighlight" then

print("高亮的:"..a1:getTag() ) -- A cell is highlighting,coco2d-x 2.1.3 or above

elseif fn == "cellUnhighlight" then

print("不是高亮".. a1:getTag()) -- A cell had been unhighlighted,coco2d-x 2.1.3 or above

elseif fn == "cellWillRecycle" then -- A cell will be recycled,coco2d-x 2.1.3 or above

print( a1:getTag() )

end

return r

end)

--创建tableview

local t = LuaTableView:createWithHandler(h,CCSizeMake(480,400))

t:setBounceable(true)

--节点定位tableview

NodeBg:addChild(t,1)

TestLayer:addChild(NodeBg)

-- parent:addChild(TestLayer)

return TestLayer

end

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐