TableView
TableView 继承于 ScrollView
--创建TableView
function PanelLobbyGameListUI:init_table_view()
local _list_size = self:getContentSize()
self.m_tableView = cc.TableView:create(_list_size) --设置视图大小
self.m_tableView:setAnchorPoint(cc.p(0, 0)) --设置锚点(默认就是 0,0 )
self.m_tableView:setPosition(cc.p(0, 0)) --设置位置
--设置滑动方向(水平滑动:cc.SCROLLVIEW_DIRECTION_HORIZONTAL,垂直滑动:cc.SCROLLVIEW_DIRECTION_VERTICAL)默认垂直滑动
self.m_tableView:setDirection(cc.SCROLLVIEW_DIRECTION_HORIZONTAL)
--设置排列方式(从小到大排列:cc.TABLEVIEW_FILL_TOPDOWN,从大到小排列:cc.TABLEVIEW_FILL_BOTTOMUP)默认从大到小(idx:3,2,1,0)
self.m_tableView:setVerticalFillOrder(cc.TABLEVIEW_FILL_TOPDOWN)
self.m_tableView:setDelegate() --委托代理(不知道干啥用的)
self.m_tableView:setBounceable(false) --设置滑动回弹效果,默认启用
self:addChild(self.m_tableView)
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.onTouchRoomItem), cc.TABLECELL_TOUCHED)
self.m_tableView:registerScriptHandler(handler(self, self.numberOfCellsInTableView), cc.NUMBER_OF_CELLS_IN_TABLEVIEW)
self:table_view_reload_data()
end
--设置cell的大小,可以根据idx区分(idx 最小为 0)
function PanelLobbyGameListUI:cellSizeForTable(view, idx)
return CELL_SIZE_WIDTH + CELL_SPACE, CELL_SIZE_HEIGHT
end
--创建cell用户可以在cell上添加子节点
function PanelLobbyGameListUI:tableCellAtIndex(view, idx)
local cellIndex = idx + 1
local cell = view:dequeueCell()
local _item_data = self.game_list[cellIndex]
if nil == cell then
local _room_item = NodeLobbyGameUnit.new()
_room_item:init(_item_data)
_room_item:setName("PanelLobbyGameListUIUnit")
_room_item:setPosition(cc.p(CELL_SIZE_WIDTH / 2, CELL_SIZE_HEIGHT / 2))
cell = cc.TableViewCell:new()
cell:addChild(_room_item)
else
local _room_item = cell:getChildByName("PanelLobbyGameListUIUnit")
_room_item:init(_item_data)
end
return cell
end
--点击cell的时候回调
function PanelTrendAnimals:onTouchRoomItem(view, cell)
end
--指定创建cell的个数
function PanelTrendAnimals:numberOfCellsInTableView(view)
return table.nums(self.game_left_list)
end
function PanelLobbyGameListUI:table_view_reload_data( is_force )
local _off_set = self.m_tableView:getContentOffset()
self.m_tableView:reloadData()
if _off_set.x <= 0 and not is_force then
self.m_tableView:setContentOffset(cc.p(_off_set.x, 0))
--移动至组件最右边
--self.m_tableView:setContentOffset(cc.p(self.m_tableView:getViewSize().width - self.m_tableView:getContentSize().width, 0))
end
end

浙公网安备 33010602011771号