public static void LoadWidget(string viewPath, UIViewLayer viewLayer, Type type, Action <UIBaseWidget> callback = null) { LoadResourceToViewLayer(viewPath, viewLayer, obj => { Component component = obj.AddComponent(type); if (callback != null) { callback(component.GetComponent <UIBaseWidget>()); } }); }
private static void LoadResourceToViewLayer(string viewPath, UIViewLayer viewLayer, Action <GameObject> callback) { ResourcesDatabase.Load(viewPath, _object => { GameObject viewGo = GameObject.Instantiate(_object) as GameObject; RectTransform rectTrans = viewGo.GetComponent <RectTransform>(); rectTrans.SetParent(canvasGo.transform.Find(viewLayer.ToString()), false); callback(viewGo); }); }
public void ShowAsSecondView(UIViewLayer currViewLayer) { if (CheckViewExist()) { ShowAsSecondViewImpl(currViewLayer); } else { LoadRawView(uiViewDeploy, _uiView => { uiView = _uiView; uiView.args = args; ShowAsSecondViewImpl(currViewLayer); }); } }
//关闭一层所有界面 public void HideViews(UIViewLayer layer) { if (!viewDic.ContainsKey(layer)) { UtilityHelper.LogError(string.Format("Hide views error: {0}", layer)); return; } UIViewBase[] views = viewDic[layer].PopupAll(); if (views != null) { for (int i = 0; i < views.Length; ++i) { viewList.Remove(views[i]); SchemeViewCache(views[i]); } UpdateViewHideState(); } }
private static UIBaseWidget FindWidgetInLayers(UIViewLayer viewLayer, Type type) { Transform layerRect = canvasGo.transform.Find(viewLayer.ToString()); if (layerRect) { for (int i = 0; i < layerRect.childCount; i++) { Transform childRect = layerRect.GetChild(i); Component component = childRect.GetComponent(type); if (component) { return(component.GetComponent <UIBaseWidget>()); } } } return(null); }
//关闭一层全部界面 public void HideViews(UIViewLayer layer) { if (viewLayerDic.ContainsKey(layer) == false) { Debug.LogError($"隐藏层级失败: {layer}"); return; } UIViewBase[] views = viewLayerDic[layer].PopupAll(); if (views != null) { for (int i = 0; i < views.Length; i++) { viewList.Remove(views[i]); SchemeViewCache(views[i]); } UpdateViewHideState(); } }
public static void LoadWidgetSingleton(string viewPath, UIViewLayer viewLayer, Type type, Action <UIBaseWidget> callback = null) { UIBaseWidget targetWidget = FindWidgetInLayers(viewLayer, type); if (targetWidget) { if (callback != null) { callback(targetWidget); } } else { List <Action <UIBaseWidget> > callbackList = null; if (loadingDict.TryGetValue(viewPath, out callbackList) && callbackList.Count > 0) { loadingDict[viewPath].Add(callback); } else { callbackList = callbackList ?? new List <Action <UIBaseWidget> >(); callbackList.Add(callback); loadingDict.Add(viewPath, callbackList); LoadWidget(viewPath, viewLayer, type, uiBaseWidget => { foreach (Action <UIBaseWidget> cb in callbackList) { if (cb != null) { cb(uiBaseWidget); } } loadingDict.Remove(viewPath); }); } } }
public static void LoadWidgetSingleton(string viewPath, UIViewLayer viewLayer, string typeStr, Action <UIBaseWidget> callback = null) { Type type = Type.GetType(typeStr); LoadWidgetSingleton(viewPath, viewLayer, type, callback); }
private void ShowAsSecondViewImpl(UIViewLayer currViewLayer) { bool checkViewShow = currViewLayer == UIViewLayer.FullView; SetAsSiblingIndex(checkViewShow, viewNodeStack.Count); }
public bool CheckInViewLayer(UIViewLayer viewLayer) { return(uiViewDeploy != null && uiViewDeploy.uiViewLayer == viewLayer); }