cocos2dx3.10 带滚动条的ScrollView和TableView

cocos2dx3.10 带滚动条的ScrollView和TableView,第1张

概述scroview有2个虚方法: virtual void scrollViewDidScroll(ScrollView* view):这是当scrollView在被拖动时会响应该函数; virtual void scrollViewDidZoom(ScrollView* view):这是当scrollView在进行缩放时会响应该函数; self._ScrollView = self:getWidg

scrovIEw有2个虚方法:

virtual voID scrollVIEwDIDScroll(ScrollVIEw* vIEw):这是当scrollVIEw在被拖动时会响应该函数;


virtual voID scrollVIEwDIDZoom(ScrollVIEw* vIEw):这是当scrollVIEw在进行缩放时会响应该函数;

self._ScrollVIEw = self:getWidget("ScrollVIEw_1")   -- self._ScrollVIEw:setInertiaScrollEnabled(false)   self._slIDer = self:getWidget("SlIDer_1")    local function percentChangedEvent(sender,eventType)        print(eventType)        if eventType == ccui.SlIDerEventType.percentChanged then            local slIDer = sender            local percent = slIDer:getPercent()            self._ScrollVIEw:jumptopercentVertical(percent)        elseif eventType == ccui.SlIDerEventType.slIDeBallUp then            -- self._displayValueLabel:setString("SlIDe Ball Up")        elseif eventType == ccui.SlIDerEventType.slIDeBallDown then            -- self._displayValueLabel:setString("SlIDe Ball Down")        elseif eventType == ccui.SlIDerEventType.slIDeBallCancel then            -- self._displayValueLabel:setString("SlIDe Ball Cancel")        end    end--[[    typedef enum{    --typedef:  0--8    SCRolLVIEW_EVENT_SCRolL_TO_top,SCRolLVIEW_EVENT_SCRolL_TO_BottOM,SCRolLVIEW_EVENT_SCRolL_TO_left,SCRolLVIEW_EVENT_SCRolL_TO_RIGHT,SCRolLVIEW_EVENT_SCRolliNG,SCRolLVIEW_EVENT_BOUNCE_top,SCRolLVIEW_EVENT_BOUNCE_BottOM,SCRolLVIEW_EVENT_BOUNCE_left,SCRolLVIEW_EVENT_BOUNCE_RIGHT}ScrollvIEwEventType;]]      local function scrollVIEwDIDScroll(vIEw)        local pos = vIEw:getInnerContainerposition()        local posy = math.abs(pos.y)        local InnerSize = vIEw:getInnerContainerSize()        local ScrollVIEwSize = vIEw:getContentSize()        local scroTotalHeight = InnerSize.height - ScrollVIEwSize.height        local percent = (posy/scroTotalHeight)*100        self._slIDer:setPercent(100-percent)    end    --[[    local function ScrollCallback(sender,eventType)        if eventType == SCRolLVIEW_EVENT_SCRolliNG then            -- print("---scrolling-----")            local pos = self._ScrollVIEw:getInnerContainerposition()            -- print("---pos-----",pos.x,pos.y)            local posy = math.abs(pos.y)            local InnerSize = self._ScrollVIEw:getInnerContainerSize()            local ScrollVIEwSize = self._ScrollVIEw:getContentSize()            local scroTotalHeight = InnerSize.height - ScrollVIEwSize.height            -- print("---InnerSize--ScrollVIEwSize-",InnerSize.wIDth,InnerSize.height,ScrollVIEwSize.wIDth,ScrollVIEwSize.height)            local percent = (posy/scroTotalHeight)*100            self._slIDer:setPercent(100-percent)        elseif eventType == SCRolLVIEW_EVENT_SCRolL_TO_top then            -- print("---scroll to top-----")        elseif eventType == SCRolLVIEW_EVENT_SCRolL_TO_BottOM then            -- print("---scroll to bottom-----")        end    end    --]]    self._slIDer:addEventListener(percentChangedEvent)    self._ScrollVIEw:addEventListener(scrollVIEwDIDScroll)

tableVIEw:

local slIDer2 = self:getWidget("SlIDer2")    local tableVIEw = cc.tableVIEw:create(cc.size(600,60))    tableVIEw:setDirection(cc.SCRolLVIEW_DIRECTION_HORIZONTAL)    tableVIEw:setposition(cc.p(350,320))    tableVIEw:setBounceable(false)    tableVIEw:setDelegate()    self:addChild(tableVIEw)    local function scrollVIEwDIDScroll(vIEw)        local posx = math.abs(tableVIEw:getContentOffset().x)        local innerWIDth = 60*25 - 600        local percent = posx/innerWIDth * 100        slIDer2:setPercent(percent)    end    local function scrollVIEwDIDZoom(vIEw)        print("scrollVIEwDIDZoom")    end    local function tableCelltouched(table,cell)        print("cell touched at index: " .. cell:getIDx())    end    local function cellSizefortable(table,IDx)         return 60,60    end    local function tableCellAtIndex(table,IDx)        local strValue = string.format("%d",IDx)        local cell = table:dequeueCell()        local label = nil        if nil == cell then            cell = cc.tableVIEwCell:new()            local sprite = cc.Sprite:create("testimages/Icon.png")            sprite:setAnchorPoint(cc.p(0,0))            sprite:setposition(cc.p(0,0))            cell:addChild(sprite)            label = cc.Label:createWithSystemFont(strValue,"Helvetica",20.0)            label:setposition(cc.p(0,0))            label:setAnchorPoint(cc.p(0,0))            label:setTag(123)            cell:addChild(label)        else            label = cell:getChildByTag(123)            if nil ~= label then                label:setString(strValue)            end        end        return cell    end    local function numberOfCellsIntableVIEw(table)       return 25    end        --registerScriptHandler functions must be before the reloadData funtion    tableVIEw:registerScriptHandler(numberOfCellsIntableVIEw,cc.NUMBER_OF_CELLS_IN_tableVIEW)      tableVIEw:registerScriptHandler(scrollVIEwDIDScroll,cc.SCRolLVIEW_SCRIPT_SCRolL)    tableVIEw:registerScriptHandler(scrollVIEwDIDZoom,cc.SCRolLVIEW_SCRIPT_ZOOM)    tableVIEw:registerScriptHandler(tableCelltouched,cc.tableCELL_touchED)    tableVIEw:registerScriptHandler(cellSizefortable,cc.tableCELL_SIZE_FOR_INDEX)    tableVIEw:registerScriptHandler(tableCellAtIndex,cc.tableCELL_SIZE_AT_INDEX)    tableVIEw:reloadData()    local function percentChangedEvent2(sender,eventType)        if eventType == ccui.SlIDerEventType.percentChanged then            local slIDer = sender            local percent = slIDer:getPercent()/100            local innerWIDth = 60*25 - 600            local length = innerWIDth*percent            tableVIEw:setContentOffset(cc.p(-length,0),false)                elseif eventType == ccui.SlIDerEventType.slIDeBallUp then        elseif eventType == ccui.SlIDerEventType.slIDeBallDown then        elseif eventType == ccui.SlIDerEventType.slIDeBallCancel then        end    end    slIDer2:addEventListener(percentChangedEvent2)
总结

以上是内存溢出为你收集整理的cocos2dx3.10 带滚动条的ScrollView和TableView全部内容,希望文章能够帮你解决cocos2dx3.10 带滚动条的ScrollView和TableView所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1083765.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存