86 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Lua
		
	
			
		
		
	
	
			86 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Lua
		
	
---
 | 
						|
--- Generated by EmmyLua(https://github.com/EmmyLua)
 | 
						|
--- DateTime: 2018/6/26 0026 下午 16:28
 | 
						|
--- 简易页签容器(不管理页签布局,组件自行管理)
 | 
						|
 | 
						|
TapContent = {}
 | 
						|
 | 
						|
function TapContent:New()
 | 
						|
    local tc = {};
 | 
						|
    setmetatable(tc, { __index = TapContent });
 | 
						|
    return tc;
 | 
						|
end
 | 
						|
 | 
						|
--初始化
 | 
						|
function TapContent:Init(root, callback,check)
 | 
						|
    self.tapCount = 0;
 | 
						|
    self.tapList = {};
 | 
						|
    self.root = root;
 | 
						|
    self.callback = callback;
 | 
						|
    self.check = check;
 | 
						|
    self:InitPanel();
 | 
						|
    self:BindEvent();
 | 
						|
end
 | 
						|
 | 
						|
--初始化面板
 | 
						|
function TapContent:InitPanel()
 | 
						|
    local count = self.root.transform.childCount;
 | 
						|
    for i = 1, count do
 | 
						|
        local child = self.root.transform:GetChild(i - 1);
 | 
						|
        local tapToggle = {};
 | 
						|
        if child then
 | 
						|
            local toggle = child:GetComponent("Toggle");
 | 
						|
            if toggle then
 | 
						|
                self.tapCount = self.tapCount + 1;
 | 
						|
                tapToggle.toggle = toggle;
 | 
						|
                table.insert(self.tapList, tapToggle)
 | 
						|
            end
 | 
						|
        end
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
--绑定事件
 | 
						|
function TapContent:BindEvent()
 | 
						|
    for i = 1, self.tapCount do
 | 
						|
        local uiToggle = self.tapList[i].toggle.gameObject:GetComponent("UIToggle")
 | 
						|
        uiToggle:SetCheck(self.check);
 | 
						|
        Util.AddToggle(self.tapList[i].toggle.gameObject,
 | 
						|
                function(isOn)
 | 
						|
                    if(isOn)then
 | 
						|
                        self:ClickEvent();
 | 
						|
                    end
 | 
						|
                end);
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
function TapContent:ToggleEvent(name)
 | 
						|
    for i = 1, self.tapCount do
 | 
						|
        local tap = self.tapList[i];
 | 
						|
        if tap.toggle.name == name then
 | 
						|
            tap.toggle.isOn = true;
 | 
						|
            self:ClickEvent();
 | 
						|
        else
 | 
						|
            tap.toggle.isOn = false;
 | 
						|
        end
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
--触发事件
 | 
						|
function TapContent:ClickEvent()
 | 
						|
    for i = 1, self.tapCount do
 | 
						|
        local tap = self.tapList[i];
 | 
						|
        local targetGraphic = tap.toggle.targetGraphic;
 | 
						|
        local graphic = tap.toggle.graphic;
 | 
						|
        if targetGraphic then
 | 
						|
            targetGraphic.gameObject:SetActive(not tap.toggle.isOn);
 | 
						|
        end
 | 
						|
        if graphic then
 | 
						|
            graphic.gameObject:SetActive(tap.toggle.isOn);
 | 
						|
        end
 | 
						|
        if tap.toggle.isOn and self.callback then
 | 
						|
            self.callback(tap.toggle.name);
 | 
						|
        end
 | 
						|
    end
 | 
						|
end
 | 
						|
 |