08 TableView 表格视图

前端之家收集整理的这篇文章主要介绍了08 TableView 表格视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

TableView 表格视图

TableView 继承 ScrollView

local winSize = cc.Director:getInstance():getWinSize()
    
local tableViewBack = cc.Sprite:create("image/back2.png")
tableViewBack:setAnchorPoint(0,0)
    
    
--  create(var size,var container)
    
local tableView = cc.TableView:create(cc.size(600,300)) 
tableView:setPosition(cc.p(winSize.width/2-300,winSize.height/2-150))
self:addChild(tableView)
    
tableView:setColor(cc.c3b(255,0))
tableView:setContainer(tableViewBack)
--tableView:addChild(tableViewBack)
    
tableView:setDirection(cc.SCROLLVIEW_DIRECTION_HORIZONTAL)
--  cc.SCROLLVIEW_DIRECTION_NONE
--  cc.SCROLLVIEW_DIRECTION_HORIZONTAL
--  cc.SCROLLVIEW_DIRECTION_VERTICAL
--  cc.SCROLLVIEW_DIRECTION_BOTH
    
tableView:setBounceable(false)
    
    
    
--  滑动事件
local function tableViewEvent_DidScroll(view)
    print("tableView滑动")
    --  滑动量                             --两种写法
    --local offsetX = view:getContainer():getPositionX()
    local offsetX = view:getContentOffset().x
        
    --  总长度 - 可视长度      --两种写法
    --local lenth = view:getContentSize().width - view:getViewSize().width
    local lenth = view:getContainer():getContentSize().width - view:getViewSize().width
    print(offsetX / lenth * -100)
        
end

--  缩放事件
local function tableViewEvent_DidZoom(view)
    print("缩放")
end



--  点击
local function tableView_cell_Touched(table,cell)
    print("点击" .. cell:getIdx())
end
--  构造
local function tableView_cell_Index(table,idx)

    local cell = table:dequeueCell()

    if nil == cell then
        --新建
        cell = cc.TableViewCell:new()
        --新建
        local sprite = cc.Sprite:create("image/"..tostring(idx+1)..".png")
        --sprite:setAnchorPoint(0,0)
        sprite:setPosition(sprite:getContentSize().width/2,table:getContentSize().height/2)
        sprite:setTag(123)
        --添加
        cell:addChild(sprite)
    else
        --移除
        local sprite = cell:getChildByTag(123)
        sprite:removeFromParent()
        --新建
        sprite = cc.Sprite:create("image/"..tostring(idx+1)..".png")
        --sprite:setAnchorPoint(0,table:getContentSize().height/2)
        sprite:setTag(123)
        --添加
        cell:addChild(sprite)  
    end
    return cell
end

--  大小
local function tableView_cell_Size(table,idx) 
    return 300,200
end

--  数量
local function tableView_cell_Num(table)
    return 12
end


tableView:setDelegate()
--registerScriptHandler functions must be before the reloadData funtion(回调必须在载入数据之前)

tableView:registerScriptHandler(tableViewEvent_DidScroll,cc.SCROLLVIEW_SCRIPT_SCROLL)   --绑定    滑动事件
tableView:registerScriptHandler(tableViewEvent_DidZoom,cc.SCROLLVIEW_SCRIPT_ZOOM)       --绑定    缩放事件 

tableView:registerScriptHandler(tableView_cell_Touched,cc.TABLECELL_TOUCHED)            --绑定    格子点击
tableView:registerScriptHandler(tableView_cell_Index,cc.TABLECELL_SIZE_AT_INDEX)        --绑定    构造每个格子
tableView:registerScriptHandler(tableView_cell_Size,cc.TABLECELL_SIZE_FOR_INDEX)        --绑定    每个格子大小
tableView:registerScriptHandler(tableView_cell_Num,cc.NUMBER_OF_CELLS_IN_TABLEVIEW)     --绑定    格子数量

tableView:reloadData()

猜你在找的Cocos2d-x相关文章