滑动条修改提交

dev_chengFeng
jiaoyangna 2021-08-06 15:47:31 +08:00
parent 5cf3388a59
commit 34357fddff
1 changed files with 74 additions and 19 deletions

View File

@ -85,29 +85,79 @@ local function SetPosition(self, dv2,isBack)
else
dv2.y = 0
end
local fv2 = av2 + dv2
--if not self.elastic then
if self.itemDis > 0 then
if self.dragType == 1 then
if fv2.y < (0 - self.maxOffSet) or fv2.y > (self.itemDis + self.maxOffSet) then
fv2.y = math.clamp(fv2.y, 0, self.itemDis)
if not isBack then
return
end
end
elseif self.dragType == 2 then
if fv2.x < (0 - self.maxOffSet) or fv2.x > (self.itemDis + self.maxOffSet) then
fv2.x = math.clamp(-fv2.x, -self.itemDis, 0)
if not isBack then
return
end
end
if self.itemDis > 0 then
if self.dragType == 1 then
if av2.y < (0 - self.maxOffSet) then
self.isReachMax = 1
elseif av2.y > (self.itemDis + self.maxOffSet) then
self.isReachMax = 2
else
self.isReachMax = 0
end
elseif self.dragType == 2 then
if av2.x > (0 + self.maxOffSet) then
self.isReachMax = 1
elseif av2.x < -(self.itemDis + self.maxOffSet) then
self.isReachMax = 2
else
self.isReachMax = 0
end
end
else
return
end
self.realPos = av2 + dv2
if self.isReachMax ~= 0 then
self.moveTween.MomentumAmount = 0
self.moveTween.Momentum = Vector3.zero
self.moveTween.Strength = 10
self.moveTween:LerpMomentum(Vector3.zero)
if self.dragType == 1 then
if (self.realPos + dv2).y < self.realPos.y and self.isReachMax == 1 then
dv2.y = 0
elseif (self.realPos + dv2).y > self.realPos.y and self.isReachMax == 2 then
dv2.y = 0
end
else
return
if (self.realPos + dv2).x > self.realPos.x and self.isReachMax == 1 then
dv2.x = 0
elseif (self.realPos + dv2).x < self.realPos.x and self.isReachMax == 2 then
dv2.x = 0
end
end
--end
else
self.moveTween.Strength = 1
self.moveTween.MomentumAmount = 1
end
local fv2 = av2 + dv2
-- --if not self.elastic then
-- if self.itemDis > 0 then
-- if self.dragType == 1 then
-- if fv2.y < (0 - self.maxOffSet) then
-- fv2.y = 0 - self.maxOffSet
-- self.isReachMax = true
-- elseif fv2.y > (self.itemDis + self.maxOffSet) then
-- fv2.y = self.itemDis + self.maxOffSet
-- self.isReachMax = true
-- else
-- self.isReachMax = false
-- end
-- elseif self.dragType == 2 then
-- if fv2.x > (0 + self.maxOffSet) then
-- fv2.x = (0 + self.maxOffSet)
-- self.isReachMax = true
-- elseif fv2.x < -(self.itemDis + self.maxOffSet) then
-- fv2.x = -(self.itemDis + self.maxOffSet)
-- self.isReachMax = true
-- else
-- self.isReachMax = false
-- end
-- end
-- else
-- return
-- end
self.dragGOTran.anchoredPosition = fv2
local curIndex
@ -132,7 +182,10 @@ local function OnBeginDrag(self, Pointgo, data)
self.moveTween.enabled = true
self.moveTween.Momentum = Vector3.zero
self.moveTween.IsUseCallBack = false
self.isReachMax = 0
data:Use()
self.moveTween.Strength = 1
self.realPos = self.dragGOTran.anchoredPosition
end
local function OnDrag(self, Pointgo, data)
@ -150,6 +203,8 @@ local function OnEndDrag(self, Pointgo, data)
self.moveTween.IsUseCallBack = true
data:Use()
self.isBeginDrag = false
self.isReachMax = 0
self.moveTween.Strength = 1
end
local function OnMoveEnd(self)