本来是在紧急开发中,想找官方已经有的,但是官方好像没有,无奈,只能自己写了。
目前只写到了可以循环使用,也可以到顶不动,但是那个回弹效果还没写完。
第一个坑:找监听。
百度上面说是有几种办法,我都试了。第一感觉就是没用,然后不断的尝试找资料,后来发现是因为点击事件的原因,我ScrollView 的底图是一个layout,打开layout点击事件后就收不到全局点击事件了,所以需要关闭点击事件。
self.image = ccui.Layout:create()
self.image:ignoreContentAdaptWithSize(false)
self.image:setName("Layout")
self.image:setContentSize(self.startX * 2, self.scrollViewHeight)
self.image:setPosition(self.x , self.y)
self.image:setAnchorPoint(0.5,0.5)
self.image:setOpacity(0)
self.image:setClippingEnabled(true)
self:addChild(self.image) 其他的监听都没返回touch坐标,所以不行
第二个坑:额,暂时没啥坑。先不写。下面贴代码:
local M = class("ScrollView1" , cc.Node)
local Utils = require("Utils")
function M:ctor(par)
if par then
self.scrollView = par.scrollView
self.gapY = par.gapY
self.scrollViewHeight = par.scrollViewHeight
self.startX = par.startX
self.object = par.object
self.x = par.x or 500
self.y = par.y or 500
if par.maxShowView then
self.maxShowView = par.maxShowView
else
self.maxShowView = 10
end
self.isQidong = false
end
self.objectList = {}
self.objectViewList = {}
self.image = ccui.Layout:create()
self.image:ignoreContentAdaptWithSize(false)
self.image:setName("Layout")
self.image:setContentSize(self.startX * 2, self.scrollViewHeight)
self.image:setPosition(self.x , self.y)
self.image:setAnchorPoint(0.5,0.5)
self.image:setOpacity(0)
self.image:setClippingEnabled(true)
self:addChild(self.image)
self:TouchEvent()
end
function M:ValueMoveUp()
-- 当倒数第二个元素高于限制的高度时,便需要将第一个元素放到最后面