local MainScene = class("MainScene", function()
return display.newScene("MainScene")
end)
function MainScene:ctor()
cc.ui.UILabel.new({
UILabelType = 2, text = "Hello, World", size = 64})
:align(display.CENTER, display.cx, display.cy)
:addTo(self)
end
function MainScene:onEnter()
print("-----------------------onEnter ----------------------")
self:initTableView()
end
function MainScene:onExit()
end
function MainScene:initTableView()
local w,h = display.width,display.height
--创建TableView
self.m_tableView = cc.TableView:create( cc.size( w/2, h - 100) );
self.m_tableView:setName("table_view_name")
self.m_tableView:setPosition(cc.p(0.25*w,0));
self:addChild(self.m_tableView)
--竖直从上往下排列
self.m_tableView:setVerticalFillOrder(cc.TABLEVIEW_FILL_TOPDOWN);
--设置代理
self.m_tableView:setDelegate();
self.m_tableView:registerScriptHandler( handler(self, self.scrollViewDidScroll),cc.SCROLLVIEW_SCRIPT_SCROLL); --滚动时的回掉函数
self.m_tableView:registerScriptHandler( handler(self, self.cellSizeForTable), cc.TABLECELL_SIZE_FOR_INDEX); --列表项的尺寸
self.m_tableView:registerScriptHandler( handler(self, self.tableCellAtIndex), cc.TABLECELL_SIZE_AT_INDEX); --创建列表项
self.m_tableView:registerScriptHandler( handler(self, self.numberOfCellsInTableView), cc.NUMBER_OF_CELLS_IN_TABLEVIEW); --列表项的数量
self.m_tableView:reloadData();
end
function MainScene:scrollViewDidScroll(view)
end
function MainScene:cellSizeForTable(view, idx)
-- local panelRankItem = self.m_panelRankItem:clone();
-- iHeight = panelRankItem:getContentSize().height + panelRankItem:getLayoutParameter():getMargin().bottom;
-- return 0, iHeight;
return 200,200
end
function MainScene:numberOfCellsInTableView(view)
return 10000; --10个列表项
end
function MainScene:tableCellAtIndex(view, idx)
local index = idx + 1;
local cell = view:dequeueCell();
local panelRankItem = nil;
if nil == cell then
cell = cc.TableViewCell:new();
--创建列表项
local panelRankItem = ccui.Layout:create()
--self:resetLabelNum(panelRankItem, index);
panelRankItem:setPosition(cc.p(0, 0));
panelRankItem:setTag(123);
cell:addChild(panelRankItem);
local v = ccui.ImageView:create()
v:loadTexture("noavatar_middle.jpg")
panelRankItem:addChild(v)
v:setPosition(cc.p(60,60))
local btn = ccui.Button:create("btn1.png","btn2.png")
panelRankItem:addChild(btn)
btn:setPosition(cc.p(60,60))
panelRankItem:setSwallowTouches(false);
btn:setSwallowTouches(false);
local tex = ccui.Text:create()
tex:setName("text")
tex:setFontSize(30)
tex:setString("".. idx)
tex:setPosition(cc.p(30,30))
panelRankItem:addChild(tex)
local instance = self
local function btn_click(sender,etype)
print("etype = " .. etype)
if etype == 2 then
instance.m_tableView:reloadData();
end
end
btn:addTouchEventListener(btn_click)
else
panelRankItem = cell:getChildByTag(123);
panelRankItem:getChildByName("text"):setString("".. idx)
--self:resetLabelNum(panelRankItem, index);
end
return cell
end
return MainScene
cocos tableview
猜你喜欢
转载自my.oschina.net/lyr/blog/1820029
今日推荐
周排行