cocos2d-lua UI框架之(UIManager)
作者:互联网
-------------------UI弹窗管理器-----------------------------------
local Warn = function(content)
print("Warn: "..content)
end
local UIMgr = {}
function UIMgr:init()
self.uiList = {}
end
--[[
打开一个界面:始终显示最顶层的界面
参数:
baselayer:ui的路径
... :需要传递给UI的数据
]]
function UIMgr:open(uipath, ...)
if uipath == nil then return end
local baseLayer = require(uipath):new(...)
--检查是否有相同的界面已经打开
local index;
for i=#self.uiList, 1, -1 do
if baseLayer.__name == self.uiList[i].__name then
index = i
break;
end
end
if index then
Warn("add ui again!")
self.uiList[index]:close()
table.remove(self.uiList, index)
end
--将当前显示界面隐藏
local uiBottom = self.uiList[#self.uiList]
uiBottom:onHide()
table.insert(self.uiList, baseLayer)
--将新加入UI界面显示
local uiTop = self.uiList[#self.uiList]
uiTop:onShow()
end
--关闭一个界面
--如果没有参数就全local ViewStack = 部清理,放在界面的onExit方法里调用
function UIMgr:remove(baseLayer)
标签:index,end,--,local,self,lua,UI,UIManager,uiList 来源: https://blog.csdn.net/zhang1461376499/article/details/110182187