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
 
posted @ 2021-10-21 16:24  嘉实基金活动  阅读(136)  评论(0)    收藏  举报