
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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)