侧边栏
This commit is contained in:
parent
e7039061a8
commit
0cdb8515ca
@ -152,6 +152,10 @@ function SideBarBaseCellComp:setAnchoredPositionY(y)
|
||||
self.baseObject:setAnchoredPositionY(y)
|
||||
end
|
||||
|
||||
function SideBarBaseCellComp:setAnchoredPositionX(x)
|
||||
self.baseObject:setAnchoredPositionX(x)
|
||||
end
|
||||
|
||||
function SideBarBaseCellComp:setVisible(visible)
|
||||
self.visible = visible
|
||||
self.baseObject:setVisible(visible)
|
||||
|
||||
@ -390,7 +390,14 @@ end
|
||||
function MainCityUI:initLeftRightBtns()
|
||||
self.leftNode = self.uiMap["main_ui.left_node"]
|
||||
self.leftSideBar = self.uiMap["main_ui.left_node.side_bar"]
|
||||
self.leftSideBar:setAnchorMin(0, 1)
|
||||
self.leftSideBar:setAnchorMax(0, 1)
|
||||
self.leftSideBar:getTransform().pivot = BF.Vector2(0, 1)
|
||||
local addY = SafeAreaManager:getNotchScreenHeight()
|
||||
self.leftSideBar:setAnchoredPosition(17, -280 - addY)
|
||||
self.leftArrowBtn = self.uiMap["main_ui.left_node.arrow_node"]
|
||||
self.leftArrowBtn:setAnchorMin(0, 1)
|
||||
self.leftArrowBtn:setAnchorMax(0, 1)
|
||||
self.leftArrowBtn:addClickListener(function()
|
||||
self:openOrCloseLeftSideBar()
|
||||
end)
|
||||
@ -398,7 +405,13 @@ function MainCityUI:initLeftRightBtns()
|
||||
|
||||
self.rightNode = self.uiMap["main_ui.right_node"]
|
||||
self.rightSideBar = self.uiMap["main_ui.right_node.side_bar"]
|
||||
self.rightSideBar:setAnchorMin(1, 1)
|
||||
self.rightSideBar:setAnchorMax(1, 1)
|
||||
self.rightSideBar:getTransform().pivot = BF.Vector2(1, 1)
|
||||
self.rightSideBar:setAnchoredPosition(-17, -280 - addY)
|
||||
self.rightArrowBtn = self.uiMap["main_ui.right_node.arrow_node"]
|
||||
self.rightArrowBtn:setAnchorMin(1, 1)
|
||||
self.rightArrowBtn:setAnchorMax(1, 1)
|
||||
self.rightArrowBtn:addClickListener(function()
|
||||
self:openOrCloseRightSideBar()
|
||||
end)
|
||||
@ -407,6 +420,7 @@ function MainCityUI:initLeftRightBtns()
|
||||
self.sideBarCellObject = self.uiMap["main_ui.cache_node.side_bar_cell"]
|
||||
local w, h = self.sideBarCellObject:fastGetSizeDelta()
|
||||
self.sideBarHeight = h
|
||||
self.sideBarMaxCount = 4
|
||||
if self.leftBarList == nil then
|
||||
self.leftBarList = {}
|
||||
end
|
||||
@ -478,6 +492,8 @@ function MainCityUI:refreshLeftBtns()
|
||||
if cell == nil then
|
||||
cell = self:addSideBarCellComp(v)
|
||||
cell:getBaseObject():setParent(self.leftSideBar, false)
|
||||
cell:getBaseObject():setAnchorMin(0, 1)
|
||||
cell:getBaseObject():setAnchorMax(0, 1)
|
||||
end
|
||||
cell:initWithParentUI(self, v, true)
|
||||
table.insert(self.leftBarList, cell)
|
||||
@ -490,16 +506,25 @@ function MainCityUI:refreshLeftBtns()
|
||||
end
|
||||
self.leftNode:setAnchoredPositionX(0)
|
||||
local y = -SIDE_BAR_BORDER_OFFSET - self.sideBarHeight/2
|
||||
local x = 60
|
||||
local maxCount = self.sideBarMaxCount
|
||||
local minY = y
|
||||
local bgSizeX = 112
|
||||
local otherColumn = false
|
||||
if isClose then -- 只显示3个
|
||||
local minCount = GConst.MainCityConst.SIDE_BAR_MIN_COUNT
|
||||
for i = 1, minCount do
|
||||
local sideBarBtn = self.leftBarList[i]
|
||||
if i <= sideBarShowCount then
|
||||
sideBarBtn:setAnchoredPositionX(x)
|
||||
sideBarBtn:setAnchoredPositionY(y)
|
||||
sideBarBtn:refresh()
|
||||
sideBarBtn:setActive(true)
|
||||
sideBarBtn:setVisible(true)
|
||||
y = y - self.sideBarHeight - SIDE_BAR_INTERVAL
|
||||
if minY > y then
|
||||
minY = y
|
||||
end
|
||||
end
|
||||
end
|
||||
for i = minCount + 1, sideBarShowCount do
|
||||
@ -509,25 +534,49 @@ function MainCityUI:refreshLeftBtns()
|
||||
end
|
||||
else
|
||||
for k, v in ipairs(self.leftBarList) do
|
||||
maxCount = maxCount - 1
|
||||
v:setAnchoredPositionX(x)
|
||||
v:setAnchoredPositionY(y)
|
||||
v:refresh()
|
||||
v:setActive(true)
|
||||
v:setVisible(true)
|
||||
y = y - self.sideBarHeight - SIDE_BAR_INTERVAL
|
||||
if minY > y then
|
||||
minY = y
|
||||
end
|
||||
if maxCount == 0 then -- 换行
|
||||
y = -SIDE_BAR_BORDER_OFFSET - self.sideBarHeight/2
|
||||
x = x + 110
|
||||
bgSizeX = 228
|
||||
otherColumn = true
|
||||
end
|
||||
end
|
||||
end
|
||||
if sideBarShowCount <= GConst.MainCityConst.SIDE_BAR_MIN_COUNT then -- 小于3个不显示箭头
|
||||
y = y + self.sideBarHeight / 2
|
||||
self.leftSideBar:setSizeDeltaY(-y)
|
||||
if minY > y then
|
||||
minY = y
|
||||
end
|
||||
self.leftSideBar:setSizeDeltaX(bgSizeX)
|
||||
self.leftSideBar:setSizeDeltaY(-minY)
|
||||
self.leftArrowBtn:stopClickAnimation()
|
||||
self.leftArrowBtn:setVisible(false)
|
||||
else
|
||||
local arrowHeight = self.leftArrowBtn:getRectHeight()
|
||||
y = y + self.sideBarHeight/2 - SIDE_BAR_ARROW_INTERVAL - arrowHeight
|
||||
self.leftSideBar:setSizeDeltaY(-y)
|
||||
if minY > y then
|
||||
minY = y
|
||||
end
|
||||
self.leftSideBar:setSizeDeltaX(bgSizeX)
|
||||
self.leftSideBar:setSizeDeltaY(-minY)
|
||||
self.leftArrowImg:setLocalScale(1, isClose and -1 or 1, 1)
|
||||
self.leftArrowBtn:setVisible(true)
|
||||
self.leftArrowBtn:setAnchoredPositionY(self.leftSideBar:fastGetAnchoredPositionY() + y + arrowHeight/2 + SIDE_BAR_BORDER_OFFSET)
|
||||
self.leftArrowBtn:setAnchoredPositionY(self.leftSideBar:fastGetAnchoredPositionY() + minY + arrowHeight/2 + SIDE_BAR_BORDER_OFFSET)
|
||||
if otherColumn then
|
||||
self.leftArrowBtn:setAnchoredPositionX(133)
|
||||
else
|
||||
self.leftArrowBtn:setAnchoredPositionX(73)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -558,6 +607,8 @@ function MainCityUI:refreshRightBtns()
|
||||
if cell == nil then
|
||||
cell = self:addSideBarCellComp(v)
|
||||
cell:getBaseObject():setParent(self.rightSideBar, false)
|
||||
cell:getBaseObject():setAnchorMin(1, 1)
|
||||
cell:getBaseObject():setAnchorMax(1, 1)
|
||||
end
|
||||
cell:initWithParentUI(self, v, false)
|
||||
table.insert(self.rightBarList, cell)
|
||||
@ -570,16 +621,25 @@ function MainCityUI:refreshRightBtns()
|
||||
end
|
||||
self.rightNode:setAnchoredPositionX(0)
|
||||
local y = -SIDE_BAR_BORDER_OFFSET - self.sideBarHeight/2
|
||||
local x = -60
|
||||
local maxCount = self.sideBarMaxCount
|
||||
local minY = y
|
||||
local bgSizeX = 112
|
||||
local otherColumn = false
|
||||
if isClose then -- 只显示一个
|
||||
local minCount = GConst.MainCityConst.SIDE_BAR_MIN_COUNT
|
||||
for i = 1, minCount do
|
||||
local sideBarBtn = self.rightBarList[i]
|
||||
if i <= sideBarShowCount then
|
||||
sideBarBtn:setAnchoredPositionX(x)
|
||||
sideBarBtn:setAnchoredPositionY(y)
|
||||
sideBarBtn:refresh()
|
||||
sideBarBtn:setActive(true)
|
||||
sideBarBtn:setVisible(true)
|
||||
y = y - self.sideBarHeight - SIDE_BAR_INTERVAL
|
||||
if minY > y then
|
||||
minY = y
|
||||
end
|
||||
end
|
||||
end
|
||||
for i = minCount + 1, sideBarShowCount do
|
||||
@ -589,25 +649,50 @@ function MainCityUI:refreshRightBtns()
|
||||
end
|
||||
else
|
||||
for k, v in ipairs(self.rightBarList) do
|
||||
maxCount = maxCount - 1
|
||||
v:setAnchoredPositionX(x)
|
||||
v:setAnchoredPositionY(y)
|
||||
v:refresh()
|
||||
v:setActive(true)
|
||||
v:setVisible(true)
|
||||
y = y - self.sideBarHeight - SIDE_BAR_INTERVAL
|
||||
if minY > y then
|
||||
minY = y
|
||||
end
|
||||
if maxCount == 0 then -- 换行
|
||||
y = -SIDE_BAR_BORDER_OFFSET - self.sideBarHeight/2
|
||||
x = x - 110
|
||||
bgSizeX = 228
|
||||
otherColumn = true
|
||||
end
|
||||
end
|
||||
end
|
||||
if sideBarShowCount <= GConst.MainCityConst.SIDE_BAR_MIN_COUNT then
|
||||
y = y + self.sideBarHeight / 2
|
||||
self.rightSideBar:setSizeDeltaY(-y)
|
||||
y = y + self.sideBarHeight / 2
|
||||
if minY > y then
|
||||
minY = y
|
||||
end
|
||||
self.rightSideBar:setSizeDeltaX(bgSizeX)
|
||||
self.rightSideBar:setSizeDeltaY(-minY)
|
||||
self.rightArrowBtn:stopClickAnimation()
|
||||
self.rightArrowBtn:setVisible(false)
|
||||
else
|
||||
local arrowHeight = self.rightArrowBtn:getRectHeight()
|
||||
y = y + self.sideBarHeight / 2 - SIDE_BAR_ARROW_INTERVAL - arrowHeight
|
||||
self.rightSideBar:setSizeDeltaY(-y)
|
||||
if minY > y then
|
||||
minY = y
|
||||
end
|
||||
self.rightSideBar:setSizeDeltaX(bgSizeX)
|
||||
self.rightSideBar:setSizeDeltaY(-minY)
|
||||
self.rightArrowImg:setLocalScale(1, isClose and -1 or 1, 1)
|
||||
self.rightArrowBtn:setVisible(true)
|
||||
self.rightArrowBtn:setAnchoredPositionY(self.rightSideBar:fastGetAnchoredPositionY() + y + arrowHeight/2 + SIDE_BAR_BORDER_OFFSET)
|
||||
if otherColumn then
|
||||
self.rightArrowBtn:setAnchoredPositionX(-133)
|
||||
else
|
||||
self.rightArrowBtn:setAnchoredPositionX(-73)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user