在实际需求中,通常需要在一个给定的面板显示tableview
- 创建tableview
--RewardPanel为给定的panel
local size = self.RewardPanel:getContentSize()
self.mRewardItemView = cc.TableView:create(cc.size(size.width, size.height))
- 设置table view
--设置滚动方向cc.SCROLLVIEW_DIRECTION_VERTICAL(垂直方向)cc.SCROLLVIEW_DIRECTION_HORIZONTAL(水平方向)
self.mRewardItemView:setDirection(cc.SCROLLVIEW_DIRECTION_VERTICAL)
--设置排列顺序
self.mRewardItemView:setVerticalFillOrder(cc.TABLEVIEW_FILL_TOPDOWN)
--设置忽略锚点对位置的影响
self.mRewardItemView:setIgnoreAnchorPointForPosition(false)
--设置锚点
self.mRewardItemView:setAnchorPoint(0, 0)
--设置坐标
self.mRewardItemView:setPosition(0, 0)
--tableview加到面板上
self.RewardPanel:addChild(self.mRewardItemView)
3.设置tableview回调 重点
--设置代理
self.mRewardItemView:setDelegate()
--滚动时的回掉函数
self.mRewardItemView:registerScriptHandler(handler(self, self.scrollViewDidScroll), cc.TABLECELL_TOUCHED)
--列表项的数量
self.mRewardItemView:registerScriptHandler(handler(self, self.cellNumForTable), cc.NUMBER_OF_CELLS_IN_TABLEVIEW)
--设置列表项的尺寸cell
self.mRewardItemView:registerScriptHandler(handler(self, self.cellSizeForTable), cc.TABLECELL_SIZE_FOR_INDEX)
--创建列表项cell
self.mRewardItemView:registerScriptHandler(handler(self, self.tableCellAtIndex), cc.TABLECELL_SIZE_AT_INDEX)
4.回调处理
function M:scrollViewDidScroll(tableview, cell)
--滚动时处理
end
function M:cellNumForTable(tableview)
return self.mRow --表示tableview有多少行,通常用数据表长/一行的个数取整
end
function M:cellSizeForTable(tableview, idx)
return ROW_WIDTH, ROW_HEIGHT --cell的size
end
function M:tableCellAtIndex(tableview, idx)
local cell = tableview:dequeueCell()
if nil == cell then
cell = cc.TableViewCell:new()
end
--...此处省略自己需要的处理
return cell
end
|