其他分享
首页 > 其他分享> > cocos2d-lua UI框架之(UIManager)

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