TableView是在实际开发经常用到的控件,它可以重复利用所创建的列表项,这样就避免了界面卡顿。效果和ScrollView做的排行榜效果差不多。不同之处是ScrollView右边有滚动条,而TableView没有。TableView就没有问题了?不是的,TableView还有隐藏的问题,这篇我们就来看看如何用TableView以及解决在实际开发中的一些问题。
一、TableView
1.RankView.lua代码
local RankView = class("RankView") function RankView:ctor() self:init(); end function RankView:init() --加载Rank.json文件 self.m_uiRoot = ccs.GUIReader:getInstance():widgetFromJsonFile("ui/Rank.json"); local panelMain = self.m_uiRoot:getChildByName("Panel_Main"); --获得滚动层 self.m_scrollViewRankList = panelMain:getChildByName("ScrollView_RankList"); --获得列表项 self.m_panelRankItem = self.m_scrollViewRankList:getChildByName("Panel_RankItem"); --引用计数加1,记住retain,必定会release(引用计数减1) self.m_panelRankItem:retain(); --列表项从父节点中移除 self.m_panelRankItem:removeFromParent(); self:initTableView(); end function RankView:initTableView() --scroll的尺寸 local sizeScroll = self.m_scrollViewRankList:getContentSize() --scroll的位置坐标 local positionScroll = cc.p(self.m_scrollViewRankList:getPositionX(), self.m_scrollViewRankList:getPositionY()); --scroll从父节点移除 self.m_scrollViewRankList:removeFromParent(); local panelMain = self.m_uiRoot:getChildByName("Panel_Main"); --创建TableView self.m_tableView = cc.TableView:create( cc.size( sizeScroll.width, sizeScroll.height) ); --TabelView添加到PanleMain panelMain:addChild(self.m