TableView 表格视图
TableView 继承 ScrollView
local winSize = cc.Director:getInstance():getWinSize() local tableViewBack = cc.Sprite:create("image/back2.png") tableViewBack:setAnchorPoint(0,0) -- create(var size,var container) local tableView = cc.TableView:create(cc.size(600,300)) tableView:setPosition(cc.p(winSize.width/2-300,winSize.height/2-150)) self:addChild(tableView) tableView:setColor(cc.c3b(255,0)) tableView:setContainer(tableViewBack) --tableView:addChild(tableViewBack) tableView:setDirection(cc.SCROLLVIEW_DIRECTION_HORIZONTAL) -- cc.SCROLLVIEW_DIRECTION_NONE -- cc.SCROLLVIEW_DIRECTION_HORIZONTAL -- cc.SCROLLVIEW_DIRECTION_VERTICAL -- cc.SCROLLVIEW_DIRECTION_BOTH tableView:setBounceable(false) -- 滑动事件 local function tableViewEvent_DidScroll(view) print("tableView滑动") -- 滑动量 --两种写法 --local offsetX = view:getContainer():getPositionX() local offsetX = view:getContentOffset().x -- 总长度 - 可视长度 --两种写法 --local lenth = view:getContentSize().width - view:getViewSize().width local lenth = view:getContainer():getContentSize().width - view:getViewSize().width print(offsetX / lenth * -100) end -- 缩放事件 local function tableViewEvent_DidZoom(view) print("缩放") end -- 点击 local function tableView_cell_Touched(table,cell) print("点击" .. cell:getIdx()) end -- 构造 local function tableView_cell_Index(table,idx) local cell = table:dequeueCell() if nil == cell then --新建 cell = cc.TableViewCell:new() --新建 local sprite = cc.Sprite:create("image/"..tostring(idx+1)..".png") --sprite:setAnchorPoint(0,0) sprite:setPosition(sprite:getContentSize().width/2,table:getContentSize().height/2) sprite:setTag(123) --添加 cell:addChild(sprite) else --移除 local sprite = cell:getChildByTag(123) sprite:removeFromParent() --新建 sprite = cc.Sprite:create("image/"..tostring(idx+1)..".png") --sprite:setAnchorPoint(0,table:getContentSize().height/2) sprite:setTag(123) --添加 cell:addChild(sprite) end return cell end -- 大小 local function tableView_cell_Size(table,idx) return 300,200 end -- 数量 local function tableView_cell_Num(table) return 12 end tableView:setDelegate() --registerScriptHandler functions must be before the reloadData funtion(回调必须在载入数据之前) tableView:registerScriptHandler(tableViewEvent_DidScroll,cc.SCROLLVIEW_SCRIPT_SCROLL) --绑定 滑动事件 tableView:registerScriptHandler(tableViewEvent_DidZoom,cc.SCROLLVIEW_SCRIPT_ZOOM) --绑定 缩放事件 tableView:registerScriptHandler(tableView_cell_Touched,cc.TABLECELL_TOUCHED) --绑定 格子点击 tableView:registerScriptHandler(tableView_cell_Index,cc.TABLECELL_SIZE_AT_INDEX) --绑定 构造每个格子 tableView:registerScriptHandler(tableView_cell_Size,cc.TABLECELL_SIZE_FOR_INDEX) --绑定 每个格子大小 tableView:registerScriptHandler(tableView_cell_Num,cc.NUMBER_OF_CELLS_IN_TABLEVIEW) --绑定 格子数量 tableView:reloadData()