Cocos3.10 Lua创建一个好友列表tableView

local spacing_height = 10  --控件之间的间距
function FriendScene:initTableView()
    self._FriendPanel= self._MainPanel:getChildByName("FriendPanel") -- 随便一个scrollView
    --创建TableView  
    self.m_tableView = cc.TableView:create(cc.size(self._FriendPanel:getContentSize().width,self._FriendPanel:getContentSize().height));  
    --TabelView添加到PanleMain  
    self._FriendPanel:addChild(self.m_tableView);
    --self.m_tableView:setPosition(positionScroll);
    self.m_tableView:setAnchorPoint(cc.p(0.5,0.5))
    self.m_tableView:setPosition(cc.p(0,0))
    --设置滚动方向  
    self.m_tableView:setDirection(self._FriendPanel:getDirection() );  
    --竖直从上往下排列  
    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 FriendScene:scrollViewDidScroll(view)  
end  

function FriendScene:cellSizeForTable(view, idx)  
    local FriendItem = require("app.platform.Hall.FriendItem"):create()
    local iHeight = FriendItem:getContentSize().height + spacing_height    --所要创建的控件的高度+间距
    return 0, iHeight;   --宽、高
end  

function FriendScene:numberOfCellsInTableView(view)  
    return 30;  --10个列表项  
end  

function FriendScene:tableCellAtIndex(view, idx)  
    local index = idx + 1;  
    local cell = view:dequeueCell();  

    local FriendItem = nil;  
    if nil == cell then  
        cell = cc.TableViewCell:new();  
        --创建列表项  
        local FriendItem = require("app.platform.Hall.FriendItem"):create()
        FriendItem:setSwallowTouches(false)
        self:resetLabelNum(FriendItem, index);  
        FriendItem:setPosition(cc.p(self.m_tableView:getContentSize().width/2, spacing_height));  
        FriendItem:setTag(456);
        cell:addChild(FriendItem);  
    else  
        FriendItem = cell:getChildByTag(456);
        self:resetLabelNum(FriendItem, index);  
    end  

    return cell  
end
function FriendScene:resetLabelNum(FriendItem, index)
  --do someting on FriendItem with index
end  

参考http://blog.csdn.net/fjdmy001/article/details/52998376
经测试对比如果使用listview,那么仅仅加载25个好友item,GL verts就已经破万,
如果使用上述tableView,无论好友多少,GL verts仅仅为数个需要显示的item的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值