diff --git a/lua/app/bf/unity/uiprefab_object.lua b/lua/app/bf/unity/uiprefab_object.lua index 79f190a5..303eba8d 100644 --- a/lua/app/bf/unity/uiprefab_object.lua +++ b/lua/app/bf/unity/uiprefab_object.lua @@ -295,6 +295,16 @@ function UIPrefabObject:fastGetSizeDelta() end end +function UIPrefabObject:fastGetSizeDeltaY() + if self.prefabHelper then + self.prefabHelper:CacheSizeDelt(self.objectIndex) + return self.prefabHelper.PositionY + else + local sizeDelta = self:getSizeDelta() + return sizeDelta.y + end +end + function UIPrefabObject:setPosition(x, y, z) if self.prefabHelper then self.prefabHelper:SetPosition(self.objectIndex, x, y, z) diff --git a/lua/app/ui/shop/cell/box_sell_cell.lua b/lua/app/ui/shop/cell/box_sell_cell.lua index ee65dcb4..3595a7d4 100644 --- a/lua/app/ui/shop/cell/box_sell_cell.lua +++ b/lua/app/ui/shop/cell/box_sell_cell.lua @@ -38,14 +38,7 @@ function BoxSellCell:init() self.cellHeight = BASE_CELL_HEIGHT end -function BoxSellCell:refresh(y) - if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.STORE_BOX_OPEN, true) then -- 没解锁的话第三个宝箱不显示 - self.cellHeight = 0 - self:setVisible(false) - return - end - self:setVisible(true) - self.baseObject:setAnchoredPositionY(-y) +function BoxSellCell:refresh() if not ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.STORE_BOX_3_OPEN, true) then -- 没解锁的话第三个宝箱不显示 self.cellHeight = BASE_CELL_HEIGHT + 20 self.baseObject:setSizeDeltaY(BASE_CELL_HEIGHT) @@ -66,6 +59,10 @@ function BoxSellCell:getCellHeight() return self.cellHeight end +function BoxSellCell:getIsOpen() + return ModuleManager:getIsOpen(ModuleManager.MODULE_KEY.STORE_BOX_OPEN, true) +end + function BoxSellCell:setVisible(visible) self.baseObject:setVisible(visible) end diff --git a/lua/app/ui/shop/cell/gem_sell_cell.lua b/lua/app/ui/shop/cell/gem_sell_cell.lua index 20b126dd..c6f72828 100644 --- a/lua/app/ui/shop/cell/gem_sell_cell.lua +++ b/lua/app/ui/shop/cell/gem_sell_cell.lua @@ -29,8 +29,7 @@ function GemSellCell:init() end end -function GemSellCell:refresh(y) - self.baseObject:setAnchoredPositionY(-y) +function GemSellCell:refresh() local cfg = ConfigManager:getConfig("mall_treasure") for k, v in ipairs(self.cells) do v:refresh(k, cfg[k]) @@ -41,6 +40,10 @@ function GemSellCell:getCellHeight() return self.cellHeight end +function GemSellCell:getIsOpen() + return true +end + function GemSellCell:setVisible(visible) self.baseObject:setVisible(visible) end diff --git a/lua/app/ui/shop/cell/gold_sell_cell.lua b/lua/app/ui/shop/cell/gold_sell_cell.lua index 206c7392..14ea0d91 100644 --- a/lua/app/ui/shop/cell/gold_sell_cell.lua +++ b/lua/app/ui/shop/cell/gold_sell_cell.lua @@ -29,8 +29,7 @@ function GoldSellCell:init() end end -function GoldSellCell:refresh(y) - self.baseObject:setAnchoredPositionY(-y) +function GoldSellCell:refresh() local cfg = ConfigManager:getConfig("mall_gold") for k, v in ipairs(self.cells) do v:refresh(k, cfg[k]) @@ -41,6 +40,10 @@ function GoldSellCell:getCellHeight() return self.cellHeight end +function GoldSellCell:getIsOpen() + return true +end + function GoldSellCell:setVisible(visible) self.baseObject:setVisible(visible) end diff --git a/lua/app/ui/shop/cell/hot_sell_cell.lua b/lua/app/ui/shop/cell/hot_sell_cell.lua index cc2dcc88..1f0c560c 100644 --- a/lua/app/ui/shop/cell/hot_sell_cell.lua +++ b/lua/app/ui/shop/cell/hot_sell_cell.lua @@ -2,17 +2,34 @@ local HotSellCell = class("HotSellCell", BaseCell) function HotSellCell:init() local uiMap = self.baseObject:genAllChildren() - self.cellHeight = 0 + self.cellHeight = self.baseObject:fastGetSizeDeltaY() + 20 + + uiMap["hot_sell_cell.title_bg.text"]:setText("临时文本:每日特惠") + uiMap["hot_sell_cell.help_btn"]:addClickListener(function() + + end) + self.timeTx = uiMap["hot_sell_cell.time_tx"] + self.cells = { + uiMap["hot_sell_cell.cell_1"], + uiMap["hot_sell_cell.cell_2"], + uiMap["hot_sell_cell.cell_3"], + uiMap["hot_sell_cell.cell_4"], + uiMap["hot_sell_cell.cell_5"], + uiMap["hot_sell_cell.cell_6"], + } end function HotSellCell:refresh() - self:setVisible(false) end function HotSellCell:getCellHeight() return self.cellHeight end +function HotSellCell:getIsOpen() + return true +end + function HotSellCell:setVisible(visible) self.baseObject:setVisible(visible) end diff --git a/lua/app/ui/shop/shop_comp.lua b/lua/app/ui/shop/shop_comp.lua index 5febf41f..72c8d4c1 100644 --- a/lua/app/ui/shop/shop_comp.lua +++ b/lua/app/ui/shop/shop_comp.lua @@ -58,18 +58,46 @@ end function ShopComp:refreshMainPage() local y = 0 local cellHeight = 0 - self.boxSellCell:refresh(y) - cellHeight = self.boxSellCell:getCellHeight() - y = y + cellHeight - self.hotSellCell:refresh(y) - cellHeight = self.hotSellCell:getCellHeight() - y = y + cellHeight - self.gemSellCell:refresh(y) - cellHeight = self.gemSellCell:getCellHeight() - y = y + cellHeight - self.goldSellCell:refresh(y) - cellHeight = self.goldSellCell:getCellHeight() - y = y + cellHeight + -- 宝箱 + if self.boxSellCell:getIsOpen() then + self.boxSellCell:setVisible(true) + self.boxSellCell:refresh() + self.boxSellCell:getBaseObject():setAnchoredPositionY(0) + cellHeight = self.boxSellCell:getCellHeight() + y = y + cellHeight + else + self.boxSellCell:setVisible(false) + end + -- 每日特惠 + if self.hotSellCell:getIsOpen() then + self.hotSellCell:setVisible(true) + self.hotSellCell:refresh() + self.hotSellCell:getBaseObject():setAnchoredPositionY(-y) + cellHeight = self.hotSellCell:getCellHeight() + y = y + cellHeight + else + self.hotSellCell:setVisible(false) + end + -- 钻石 + if self.gemSellCell:getIsOpen() then + self.gemSellCell:setVisible(true) + self.gemSellCell:refresh() + self.gemSellCell:getBaseObject():setAnchoredPositionY(-y) + cellHeight = self.gemSellCell:getCellHeight() + y = y + cellHeight + else + self.gemSellCell:setVisible(false) + end + -- 金币 + if self.goldSellCell:getIsOpen() then + self.goldSellCell:setVisible(true) + self.goldSellCell:refresh() + self.goldSellCell:getBaseObject():setAnchoredPositionY(-y) + cellHeight = self.goldSellCell:getCellHeight() + y = y + cellHeight + else + self.goldSellCell:setVisible(false) + end self.mainScrollContent:setSizeDeltaY(y) end