|
|
BaseItem = BaseItem or BaseClass(UIPartical)
|
|
|
|
local BaseItem = BaseItem
|
|
local LuaViewManager = LuaViewManager
|
|
local lua_viewM = lua_viewM
|
|
local GetChildTransforms = GetChildTransforms
|
|
local GetChildGameObjects = GetChildGameObjects
|
|
local GetChildImages = GetChildImages
|
|
local GetChildTexts = GetChildTexts
|
|
local newObject = newObject
|
|
BaseItem.Class_Type = "BaseItem"
|
|
|
|
function BaseItem:__init(parent_wnd,prefab_asset,layer_name)
|
|
self.parent_wnd = parent_wnd or false -- 父容器
|
|
self.prefab_asset = prefab_asset or false --预制体 如果有传进来就直接通过预制体创建对象 免去加载预制体的过程
|
|
self.layer_name = layer_name or false --需要挂接特效的时候 必须设置
|
|
end
|
|
|
|
--属性用途基本和baseview一致
|
|
function BaseItem:__defineVar()
|
|
return {
|
|
_class_type = self,
|
|
_iid = _in_obj_ins_id,
|
|
_use_delete_method = false,
|
|
base_file = nil,
|
|
layout_file = nil,
|
|
parent_wnd = nil,
|
|
is_delay_callback = false,
|
|
Load_callback = nil , -- 加载的回调函数,必须由子类重写
|
|
is_loaded = nil,
|
|
visible = -1, --等待加载完回调的visible状态
|
|
use_local_view = false,
|
|
position = false,
|
|
anchoredPosition = false,
|
|
cache_findChild = nil,
|
|
prefab_asset = nil,
|
|
need_refreshData = nil,
|
|
gameObject = nil,
|
|
transform = nil,
|
|
is_guide_module = false,--是否是新手引导模块
|
|
ReOpen_callback = nil, --重新打开界面,刷新事件
|
|
is_hide_delete_effect = true, --隐藏时删除特效
|
|
hide_clear_role_model = true, --隐藏时删除模型
|
|
is_imm_show = true, --立即显示;有问题的界面需要设为false,就会等到加载完再显示
|
|
full_screen = false, --全屏模式
|
|
ani_right = false, --右侧动画
|
|
ani_left = false, --左侧动画
|
|
adjust_mid = false, --中间布局调整
|
|
ani_list = false,
|
|
|
|
move_node_list = false, --移动到背景节点列表
|
|
cache_move_node_list = false,--缓存移动到背景节点列表
|
|
parent_view_target = false, --item所在界面
|
|
}
|
|
end
|
|
|
|
function BaseItem:__delete()
|
|
self:RemoveUIFromBack()
|
|
self:Destroy()
|
|
self:AfterDestroy()
|
|
end
|
|
|
|
function BaseItem:Destroy()
|
|
if self.gameObject == nil then return end
|
|
|
|
if self.transform and not IsNull(self.transform) and self.transform.name then
|
|
GlobalEventSystem:Fire(EventName.BASE_ITEM_DELETE, self.transform.name,self.layout_file)
|
|
end
|
|
|
|
if self._base_delay_load_id then
|
|
LuaViewManager:getInstance():RemoveDelayQueue(self._base_delay_load_id)
|
|
self._base_delay_load_id = nil
|
|
end
|
|
|
|
if self.trigger_guide_id then
|
|
EventSystem.UnBind(GlobalEventSystem, self.trigger_guide_id)
|
|
self.trigger_guide_id = false
|
|
end
|
|
|
|
UI.BindEventComp.UnBindAll(self)
|
|
if self.action_nodes then
|
|
for k,v in pairs(self.action_nodes) do
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(v)
|
|
end
|
|
self.action_nodes = nil
|
|
end
|
|
|
|
if self.effect_nodes then
|
|
for k,v in pairs(self.effect_nodes) do
|
|
self:ClearUIEffect(v)
|
|
end
|
|
end
|
|
|
|
if self.autoDeleteList then
|
|
for i,v in ipairs(self.autoDeleteList) do
|
|
if v ~= nil then
|
|
v:DeleteMe()
|
|
end
|
|
end
|
|
self.autoDeleteList = nil
|
|
end
|
|
|
|
if self.orientation_change_id then
|
|
EventSystem.UnBind(GlobalEventSystem,self.orientation_change_id)
|
|
self.orientation_change_id = nil
|
|
end
|
|
|
|
LuaViewManager.ClearItem(lua_viewM, self.gameObject)
|
|
|
|
self.parent_wnd = nil
|
|
self.gameObject = nil
|
|
self.transform = nil
|
|
self.cache_findChild = nil
|
|
self.prefab_asset = nil
|
|
self.is_loaded = false
|
|
self.need_refreshData = false
|
|
self.parent_view_target = false
|
|
self.cache_move_node_list = false
|
|
self:AfterDestroy()
|
|
end
|
|
|
|
--[[
|
|
获取子对象的transform
|
|
特别注意此方法是从根节点开始搜寻子对象 所以要写全路径 比如:"input/Text"
|
|
]]
|
|
function BaseItem:GetChild(name)
|
|
if self.cache_findChild and self.transform then
|
|
return self.cache_findChild(self.transform,name)
|
|
end
|
|
end
|
|
|
|
function BaseItem:GetChildComponent(name,com)
|
|
return self:GetChild(name):GetComponent(com)
|
|
end
|
|
|
|
--获取多个孩子transform
|
|
function BaseItem:GetChildTransforms(names)
|
|
return GetChildTransforms(self.transform, names)
|
|
end
|
|
|
|
--获取多个孩子go
|
|
function BaseItem:GetChildGameObjects(names)
|
|
return GetChildGameObjects(self.transform, names)
|
|
end
|
|
|
|
--获取多个孩子image
|
|
function BaseItem:GetChildImages(names)
|
|
return GetChildImages(self.transform, names)
|
|
end
|
|
|
|
--获取多个孩子text
|
|
function BaseItem:GetChildTexts(names)
|
|
return GetChildTexts(self.transform, names)
|
|
end
|
|
|
|
function BaseItem:Load()
|
|
if not self.parent_wnd then
|
|
print ("error parent_wnd is Null")
|
|
return
|
|
end
|
|
|
|
if self.gameObject then
|
|
return
|
|
end
|
|
if self.prefab_asset and tostring(self.prefab_asset) ~= "null" then
|
|
local go = newObject(self.prefab_asset)
|
|
go.name = self.layout_file
|
|
self:DoCreateItemIndeed(go)
|
|
else
|
|
local res_load_finish = function(obj)
|
|
assert(obj~=nil, "BaseItem:Load failed:cannot find basefile : "..self.base_file.." layout:"..self.layout_file)
|
|
self:DoCreateItemIndeed(obj)
|
|
end
|
|
self.is_loaded = false
|
|
LuaViewManager.LoadItem(lua_viewM, self,self.base_file, self.layout_file, res_load_finish)
|
|
end
|
|
end
|
|
|
|
function BaseItem:DoCreateItemIndeed(obj)
|
|
self.gameObject = obj
|
|
if self._use_delete_method then
|
|
self:Destroy()
|
|
return
|
|
end
|
|
|
|
if self.is_imm_show == false then
|
|
self.gameObject:SetActive(false) --先调一次隐藏 避免显示有问题
|
|
end
|
|
self.transform = obj.transform
|
|
self.cache_findChild = self.transform.Find
|
|
|
|
self.transform:SetParent(self.parent_wnd)
|
|
SetLocalScale(self.transform)
|
|
SetLocalPosition(self.transform)
|
|
self:InitViewAnimation()
|
|
|
|
local function onLoad()
|
|
if not IsNull(self.gameObject) and not self._use_delete_method then
|
|
self.gameObject:SetActive(true)
|
|
self.is_loaded = true
|
|
self:SetRotation(0,0,0)--配合SetVisible优化用的,防止加载慢引起的显示错误
|
|
self:BeforeLoad()
|
|
if self.Load_callback then
|
|
self:Load_callback()
|
|
else
|
|
LogError(self.layout_file ..":Load_callback must be override!")
|
|
end
|
|
if self.visible ~= -1 then
|
|
self:SetVisible(self.visible, self.cache_force_hide)
|
|
end
|
|
|
|
if self.position then
|
|
self:SetPosition(self.position.x,self.position.y)
|
|
self.position = false
|
|
end
|
|
|
|
if self.anchoredPosition then
|
|
self:SetAnchoredPosition(self.anchoredPosition.x,self.anchoredPosition.y)
|
|
self.anchoredPosition = false
|
|
end
|
|
|
|
if self.scale then
|
|
self:SetScale(self.scale)
|
|
self.scale = false
|
|
end
|
|
|
|
if self.full_screen then
|
|
local function onOrientationChange( )
|
|
self:SetIpxMode()
|
|
end
|
|
if not self.orientation_change_id then
|
|
self.orientation_change_id = GlobalEventSystem:Bind(EventName.ORIENTATION_DID_CHANGE, onOrientationChange)
|
|
end
|
|
end
|
|
|
|
if self.gameObject_name then
|
|
self:SetGameObjectName(self.gameObject_name)
|
|
end
|
|
self:DoOpenAni()
|
|
end
|
|
end
|
|
|
|
if self.is_delay_callback then
|
|
if self._base_delay_load_id then
|
|
LuaViewManager.RemoveDelayQueue(lua_viewM, self._base_delay_load_id)
|
|
self._base_delay_load_id = false
|
|
end
|
|
self._base_delay_load_id = LuaViewManager.AddDelayQueue(lua_viewM, onLoad)
|
|
else
|
|
onLoad()
|
|
end
|
|
end
|
|
|
|
function BaseItem:SetVisible(state, force_hide)
|
|
if self.is_loaded then
|
|
self:SetBackUIVisible(state)
|
|
if force_hide then
|
|
--部分确实需要使用SetActive的
|
|
if type(state) == "boolean" and force_hide and self.gameObject.activeSelf ~= state then
|
|
if state and rawget(self, "cache_change_rotation") then
|
|
self:SetRotation(0,0,0)
|
|
end
|
|
self.gameObject:SetActive(state)
|
|
end
|
|
else
|
|
--旋转角度代替显示隐藏减少批次
|
|
-------------------------
|
|
if type(state) == "boolean" and state == true then
|
|
self:SetRotation(0,0,0)
|
|
if self.gameObject.activeSelf ~= true then
|
|
self.gameObject:SetActive(true)
|
|
end
|
|
else
|
|
self.cache_change_rotation = true
|
|
self:SetRotation(90,90,0)
|
|
end
|
|
end
|
|
|
|
if state == false then
|
|
--隐藏的时候自动删掉挂接的模型和特效,需要在对应ITEM的ReOpen_callback后再创建
|
|
if self.hide_clear_role_model then
|
|
lua_resM:clearRoleMode(self)
|
|
end
|
|
if self.is_hide_delete_effect then
|
|
self:ClearAllEffect()
|
|
self:ResetUIZDepth()
|
|
end
|
|
elseif state == true and self.visible == false then
|
|
if self.ReOpen_callback then
|
|
self:ReOpen_callback()
|
|
end
|
|
end
|
|
self.visible = state
|
|
self.cache_force_hide = force_hide
|
|
else
|
|
self.visible = state
|
|
self.cache_force_hide = force_hide
|
|
end
|
|
end
|
|
function BaseItem:GetVisible()
|
|
if self.is_loaded then
|
|
return self.gameObject.activeSelf
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
|
|
function BaseItem:SetPosition(x, y)
|
|
if self.is_loaded then
|
|
SetLocalPosition(self.transform, x, y, 0)
|
|
else
|
|
self.position = Vector3(x,y,0)
|
|
end
|
|
end
|
|
|
|
function BaseItem:GetPosition()
|
|
if self.is_loaded then
|
|
return self.transform.localPosition
|
|
else
|
|
return self.position or Vector3.zero
|
|
end
|
|
end
|
|
|
|
function BaseItem:SetAnchoredPosition(x, y)
|
|
if self.is_loaded then
|
|
SetAnchoredPosition(self.transform,x,y)
|
|
else
|
|
self.anchoredPosition = Vector2(x,y)
|
|
end
|
|
end
|
|
|
|
function BaseItem:GetAnchoredPosition()
|
|
if self.is_loaded then
|
|
return self.transform.anchoredPosition
|
|
else
|
|
return self.anchoredPosition or Vector2.zero
|
|
end
|
|
end
|
|
|
|
function BaseItem:SetScale(scale)
|
|
if self.is_loaded then
|
|
SetLocalScale(self.transform, scale)
|
|
else
|
|
self.scale = scale
|
|
end
|
|
end
|
|
|
|
function BaseItem:SetRotation(x,y,z)
|
|
if self.is_loaded then
|
|
self.transform.localRotation = Quaternion.Euler(x, y, z)
|
|
end
|
|
end
|
|
|
|
function BaseItem:SetGameObjectName(name)
|
|
if self.is_loaded then
|
|
self.transform.name = name
|
|
else
|
|
self.gameObject_name = name
|
|
end
|
|
end
|
|
|
|
function BaseItem:GetGameObjectName()
|
|
if self.is_loaded then
|
|
return self.transform.name
|
|
else
|
|
return self.gameObject_name or ""
|
|
end
|
|
end
|
|
|
|
function BaseItem:GetChildren( names )
|
|
GetChildren(self, names)
|
|
end
|
|
|
|
function BaseItem:GetSiblingIndex( )
|
|
if self.is_loaded then
|
|
self.transform:GetSiblingIndex()
|
|
end
|
|
end
|
|
|
|
function BaseItem:SetSiblingIndex( value )
|
|
if self.is_loaded then
|
|
self.sibling_index = value or 0
|
|
if self.sibling_index == 0 then
|
|
self.transform:SetAsFirstSibling()
|
|
else
|
|
self.transform:SetSiblingIndex(self.sibling_index)
|
|
end
|
|
else
|
|
self.sibling_index = value
|
|
end
|
|
end
|
|
|
|
-- 显示子窗口
|
|
function BaseItem:PopUpChild(win)
|
|
if win then
|
|
if self.popChild ~= nil and self.popChild ~= win then
|
|
self.popChild:SetVisible(false, true)
|
|
end
|
|
self.popChild = win
|
|
self.popChild:SetVisible(true, true)
|
|
end
|
|
end
|
|
|
|
--移出屏幕(隐藏,用于频繁调用显示隐藏的对象,减少setActive的调用次数)
|
|
function BaseItem:MoveOutOfScreen( transform )
|
|
transform = transform or self.transform
|
|
if transform then
|
|
self.base_move_from_pos_y = self.base_move_from_pos_y or GetLocalPositionY(transform)
|
|
SetLocalPositionY(transform, -99999)
|
|
end
|
|
end
|
|
|
|
--移回屏幕(显示,用于频繁调用显示隐藏的对象,减少setActive的调用次数)
|
|
function BaseItem:MoveInToScreen( transform )
|
|
transform = transform or self.transform
|
|
if transform and self.base_move_from_pos_y then
|
|
SetLocalPositionY(transform, self.base_move_from_pos_y)
|
|
self.base_move_from_pos_y = false
|
|
end
|
|
end
|
|
|
|
--关闭界面时销毁该节点
|
|
function BaseItem:AutoDelete( deleteNode )
|
|
self.autoDeleteList = self.autoDeleteList or {}
|
|
table.insert(self.autoDeleteList, deleteNode)
|
|
end
|
|
|
|
--自销毁事件
|
|
function BaseItem:BindEvent( bindDispather, eventName, handleFunc )
|
|
return UI.BindEventComp.BindEvent(self, bindDispather, eventName, handleFunc)
|
|
end
|
|
|
|
--自销毁节点
|
|
function BaseItem:CreateItem( class_name, parent, layer_name, ... )
|
|
if class_name and parent then
|
|
local item = class_name.New(parent, nil, layer_name, ... )
|
|
self:AutoDelete( item )
|
|
return item
|
|
end
|
|
end
|
|
|
|
--自销毁动作
|
|
function BaseItem:AddAction( action, node )
|
|
self.action_nodes = self.action_nodes or {}
|
|
self.action_nodes[node] = node
|
|
--table.insert(self.action_nodes, node)
|
|
cc.ActionManager:getInstance():addAction(action, node)
|
|
end
|
|
|
|
--自销毁特效
|
|
function BaseItem:CreateUIEffect( config )
|
|
if not config or not config.uiTranform then return end
|
|
self.effect_nodes = self.effect_nodes or {}
|
|
self:AddUIEffectConfig( config )
|
|
table.insert(self.effect_nodes, config.uiTranform)
|
|
end
|
|
|
|
--播放界面入场动画
|
|
function BaseItem:DoOpenAni(tab_id)
|
|
tab_id = tab_id or 1
|
|
self.ani_list = self.ani_list or {}
|
|
if not self.is_loaded or self.ani_list[tab_id] then return end
|
|
self.ani_list[tab_id] = true
|
|
self:DoOpenViewAnimation()
|
|
end
|
|
|
|
function BaseItem:InitViewAnimation()
|
|
if self.full_screen or self.ani_left or self.ani_right then
|
|
--处理刘海屏的位移偏移
|
|
local width, offset = self:GetIpxOffset()
|
|
--右侧
|
|
self.ani_right_trans = self:GetChild("right")
|
|
if self.ani_right_trans then
|
|
self.ani_right_obj = self:GetChild("right").gameObject
|
|
self.old_ani_right_pos = self.ani_right_trans.anchoredPosition
|
|
if self.ani_right and ClientConfig.view_ani_mode == true then
|
|
SetAnchoredPosition(self.ani_right_trans, self.old_ani_right_pos.x + 600, self.old_ani_right_pos.y)
|
|
else
|
|
SetAnchoredPosition(self.ani_right_trans, self.old_ani_right_pos.x + offset, self.old_ani_right_pos.y)
|
|
end
|
|
end
|
|
--左侧
|
|
self.ani_left_trans = self:GetChild("left")
|
|
if self.ani_left_trans then
|
|
self.ani_left_obj = self:GetChild("left").gameObject
|
|
self.old_ani_left_pos = self.ani_left_trans.anchoredPosition
|
|
if self.ani_left and ClientConfig.view_ani_mode == true then
|
|
SetAnchoredPosition(self.ani_left_trans, self.old_ani_left_pos.x - 600 , self.old_ani_left_pos.y)
|
|
else
|
|
SetAnchoredPosition(self.ani_left_trans, self.old_ani_left_pos.x + offset , self.old_ani_left_pos.y)
|
|
end
|
|
end
|
|
--中间
|
|
self:ResetMidNode()
|
|
|
|
--设置界面大小
|
|
local MaxScreenWidth = math.min(SrcScreenWidth - width, 1560 - width)
|
|
local rt = self.gameObject:GetComponent("RectTransform")
|
|
rt.sizeDelta = Vector2(MaxScreenWidth, ScreenHeight)
|
|
|
|
end
|
|
end
|
|
|
|
--处理界面动画
|
|
function BaseItem:DoOpenViewAnimation()
|
|
local width, offset = self:GetIpxOffset()
|
|
if self.ani_right and self.ani_right_trans and ClientConfig.view_ani_mode == true then
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.ani_right_trans)
|
|
SetAnchoredPosition(self.ani_right_trans, self.old_ani_right_pos.x + self.ani_right - offset, self.old_ani_right_pos.y)
|
|
local moveActionRight = cc.MoveTo.createAnchoredType(1, self.old_ani_right_pos.x - offset, self.ani_right_trans.anchoredPosition.y)
|
|
moveActionRight = cc.EaseExponentialOut.New(moveActionRight)
|
|
self:AddAction(moveActionRight, self.ani_right_trans)
|
|
end
|
|
|
|
if self.ani_left and self.ani_left_trans and ClientConfig.view_ani_mode == true then
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.ani_left_trans)
|
|
SetAnchoredPosition(self.ani_left_trans, self.old_ani_left_pos.x + self.ani_left + offset, self.old_ani_left_pos.y)
|
|
local moveActionLeft = cc.MoveTo.createAnchoredType(1, self.old_ani_left_pos.x + offset, self.ani_left_trans.anchoredPosition.y)
|
|
moveActionLeft = cc.EaseExponentialOut.New(moveActionLeft)
|
|
self:AddAction(moveActionLeft, self.ani_left_trans)
|
|
end
|
|
end
|
|
|
|
--获取刘海屏位移
|
|
function BaseItem:GetIpxOffset()
|
|
local width, offset = 0, 0
|
|
if ClientConfig.iphone_x_offset_left ~= 0 then
|
|
offset = ClientConfig.iphone_x_offset_left/2
|
|
width = ClientConfig.iphone_x_offset_left
|
|
elseif ClientConfig.iphone_x_offset_right then
|
|
offset = -ClientConfig.iphone_x_offset_right/2
|
|
width = ClientConfig.iphone_x_offset_right
|
|
end
|
|
return width, offset
|
|
end
|
|
|
|
--处理中间节点
|
|
function BaseItem:ResetMidNode()
|
|
if self.adjust_mid then
|
|
local width, offset = self:GetIpxOffset()
|
|
local MaxScreenWidth = math.min(SrcScreenWidth - width, 1560 - width)
|
|
self.mid_trans = self:GetChild("mid")
|
|
if self.mid_trans then
|
|
self.adjust_mid.left = self.adjust_mid.left or 0
|
|
self.adjust_mid.right = self.adjust_mid.right or 0
|
|
local x = MaxScreenWidth - self.adjust_mid.left - self.adjust_mid.right
|
|
x = x / 2
|
|
SetAnchoredPosition(self.mid_trans, - (MaxScreenWidth / 2) + self.adjust_mid.left + x + offset, self.mid_trans.anchoredPosition.y)
|
|
end
|
|
end
|
|
end
|
|
|
|
--处理刘海屏,旋转屏幕
|
|
function BaseItem:SetIpxMode()
|
|
self:ResetMidNode()
|
|
|
|
local width, offset = self:GetIpxOffset()
|
|
if self.ani_right_trans then
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.ani_right_trans)
|
|
SetAnchoredPosition(self.ani_right_trans, self.old_ani_right_pos.x + offset, self.old_ani_right_pos.y)
|
|
end
|
|
|
|
if self.ani_left_trans then
|
|
cc.ActionManager:getInstance():removeAllActionsFromTarget(self.ani_left_trans)
|
|
SetAnchoredPosition(self.ani_left_trans, self.old_ani_left_pos.x + offset, self.old_ani_left_pos.y)
|
|
end
|
|
end
|
|
|
|
|
|
--把界面的UI节点移动到背景层
|
|
function BaseItem:MoveUIToBack(...)
|
|
self.move_node_list = self.move_node_list or {}
|
|
local parms = {...}
|
|
|
|
if not self.parent_view_target then
|
|
self.cache_move_node_list = self.cache_move_node_list or {}
|
|
table.insert(self.cache_move_node_list, parms)
|
|
return
|
|
end
|
|
|
|
local node = parms[1]
|
|
local args = parms[2]
|
|
local camera_args = parms[3]
|
|
local activity_args = parms[4]
|
|
|
|
local targt_view = self.parent_view_target
|
|
if node then
|
|
|
|
local t = {node = node, args = args, parent = node.transform.parent, sibling_idx = node.transform:GetSiblingIndex()}
|
|
table.insert(self.move_node_list, t)
|
|
LuaViewManager:getInstance():ShowBackData({
|
|
target = targt_view,
|
|
node_list ={[1] = t},
|
|
camera_args = camera_args,
|
|
activity = activity_args,
|
|
})
|
|
end
|
|
end
|
|
|
|
|
|
--把界面的UI节点从背景层中移除
|
|
function BaseItem:RemoveUIFromBack()
|
|
self.move_node_list = self.move_node_list or {}
|
|
if #self.move_node_list > 0 then
|
|
LuaViewManager:getInstance():HideBackData(self)
|
|
end
|
|
end
|
|
|
|
--根据界面状态显示隐藏在背景层中的UI
|
|
function BaseItem:SetBackUIVisible(state, from_view)
|
|
if self.move_node_list then
|
|
for k,v in pairs(self.move_node_list) do
|
|
if from_view then
|
|
if state then
|
|
if v.is_hide_form_view then
|
|
v.is_hide_form_view = nil
|
|
v.node.gameObject:SetActive(state)
|
|
end
|
|
else
|
|
if v.node.gameObject.activeSelf then
|
|
v.is_hide_form_view = true
|
|
v.node.gameObject:SetActive(state)
|
|
end
|
|
end
|
|
else
|
|
v.node.gameObject:SetActive(state)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function BaseItem:AppendToBackContainer(parent_view)
|
|
if parent_view then
|
|
self.parent_view_target = parent_view
|
|
parent_view:AppendToBackContainer(self)
|
|
if self.cache_move_node_list then
|
|
for i,v in ipairs(self.cache_move_node_list) do
|
|
self:MoveUIToBack(unpack(v))
|
|
end
|
|
self.cache_move_node_list = false
|
|
end
|
|
end
|
|
end
|