cocos2dx TableView应用

阎烨
2023-12-01


function TransCoinLayer:initTableView(  )
	self.listItem = self.recordPanel:getChildByName("Panel_item")
	self.listBgPanle = self.recordPanel:getChildByName("Panel_listBg")
	self.tableView = cc.TableView:create(self.listBgPanle:getContentSize())
	self.listBgPanle:addChild(self.tableView)
	self.tableView:setBounceable(true)
	self.tableView:setDirection(cc.SCROLLVIEW_DIRECTION_VERTICAL)  
	self.tableView:setVerticalFillOrder(cc.TABLEVIEW_FILL_TOPDOWN);
	self.tableView:setDelegate(); 
	self.tableView:registerScriptHandler( handler(self, self.scrollViewDidScroll),cc.SCROLLVIEW_SCRIPT_SCROLL);           --滚动时的回掉函数  
    self.tableView:registerScriptHandler( handler(self, self.cellSizeForTable), cc.TABLECELL_SIZE_FOR_INDEX);             --列表项的尺寸  
    self.tableView:registerScriptHandler( handler(self, self.tableCellAtIndex), cc.TABLECELL_SIZE_AT_INDEX);              --创建列表项  
    self.tableView:registerScriptHandler( handler(self, self.numberOfCellsInTableView), cc.NUMBER_OF_CELLS_IN_TABLEVIEW); --列表项的数量  
end

function TransCoinLayer:scrollViewDidScroll(view)  
end  
  
function TransCoinLayer:cellSizeForTable(view, idx)  
   
    return self.listItem:getContentSize().height+3, self.listItem:getContentSize().width
end  
  
function TransCoinLayer:numberOfCellsInTableView(view)  
    return #self.localData  
end  
  
function TransCoinLayer:tableCellAtIndex(view, idx)    
    local cell = view:dequeueCell();  
  
    local panelRankItem = nil;  
    if nil == cell then  
        cell = cc.TableViewCell:new();  
        --创建列表项  
        local data = self.localData[idx+1]
        local panelRankItem = self.listItem:clone();  
        panelRankItem:getChildByName("Text_time"):setString(data.time)
        panelRankItem:getChildByName("Text_id"):setString(data.id)
        panelRankItem:getChildByName("Text_coin"):setString(data.coin)
        panelRankItem:setPosition(cc.p(0, 0));  
        panelRankItem:setTag(123);  
        cell:addChild(panelRankItem);  
    else  
        panelRankItem = cell:getChildByTag(123);  
        local data = self.localData[idx+1]
      	panelRankItem:getChildByName("Text_time"):setString(data.time)
        panelRankItem:getChildByName("Text_id"):setString(data.id)
        panelRankItem:getChildByName("Text_coin"):setString(data.coin)
    end  
  
    return cell  
end  


 类似资料: