Beispiel #1
0
    /// <summary>
    /// 重排蒙板层次
    /// </summary>
    /// <param name="bindUIId"></param>
    private void ResortMaskLayer(UIViewID bindUIId)
    {
        var uiView    = GetUIView(bindUIId);
        var childArr  = new List <Transform> ();
        var resultArr = new List <Transform> ();

        foreach (Transform transform in popUpUIRoot.transform)
        {
            if (transform.gameObject != mask)
            {
                childArr.Add(transform);
            }
        }
        foreach (Transform transform in childArr)
        {
            if (transform != uiView.viewRoot.transform)
            {
                resultArr.Add(transform);
            }
            else
            {
                resultArr.Add(mask.transform);
                resultArr.Add(uiView.viewRoot.transform);
            }
        }
        for (int i = 0; i < resultArr.Count; i++)
        {
            resultArr [i].SetSiblingIndex(i);
        }
    }
Beispiel #2
0
 /// <summary>
 ///     显示UIView
 /// </summary>
 /// <param name="viewID">UIView的ID</param>
 public UIView ShowUI(UIViewID viewID)
 {
     if (viewDic.ContainsKey(viewID))
     {
         var view = viewDic[viewID];
         if (!view.IsInit)
         {
             view.OnInit();
             view.IsInit = true;
         }
         else
         {
             Debug.Log("View已初始化:" + viewID);
         }
         if (!view.IsShow)
         {
             view.OnShow();
             view.IsShow = true;
         }
         else
         {
             Debug.Log("View已打开:" + viewID);
         }
         BringToTop(viewID);
         return(view);
     }
     Debug.LogError("无效ViewID:" + viewID);
     return(null);
 }
Beispiel #3
0
 /// <summary>
 /// 包含回调的隐藏
 /// </summary>
 /// <param name="viewID"></param>
 /// <param name="action"></param>
 public void HideUI(UIViewID viewID, Action action)
 {
     if (viewDic.ContainsKey(viewID))
     {
         var view = viewDic [viewID];
         if (view.isShow)
         {
             view.OnHide(action);
             view.isShow = false;
         }
         else
         {
             Debug.Log("View已关闭:" + viewID);
         }
     }
     else
     {
         Debug.LogError("无效ViewID:" + viewID);
     }
     maskBindUIList.Remove(viewID);
     if (maskBindUIList.Count == 0)
     {
         HidenUIMask();
     }
     else
     {
         ResortMaskLayer(maskBindUIList [maskBindUIList.Count - 1]);
     }
 }
Beispiel #4
0
 /// <summary>
 ///     删除UIView
 /// </summary>
 /// <param name="viewID">UIView的ID</param>
 public void DestroyUI(UIViewID viewID)
 {
     if (viewDic.ContainsKey(viewID))
     {
         var view = viewDic[viewID];
         view.OnDestroy();
         view.IsInit = false;
         view.IsShow = false;
     }
     else
     {
         Debug.LogError("无效ViewID:" + viewID);
     }
     maskBindUIList.Remove(viewID);
     if (maskBindUIList.Count == 0)
     {
         HidenUIMask();
     }
     else
     {
         var nextUI    = GetUIView(maskBindUIList[maskBindUIList.Count - 1]);
         var viewIndex = nextUI.ViewRoot.transform.GetSiblingIndex();
         mask.transform.SetSiblingIndex(viewIndex - 1);
     }
 }
Beispiel #5
0
 /// <summary>
 /// 显示UIView
 /// </summary>
 /// <param name="viewID">UIView的ID</param>
 public UIView ShowUI(UIViewID viewID)
 {
     if (viewDic.ContainsKey(viewID))
     {
         var view = viewDic [viewID];
         if (view.viewRootCache == null)
         {
             view.LoadUI();
         }
         if (!view.isInit)
         {
             view.OnInit();
             view.isInit = true;
         }
         if (!view.isShow)
         {
             view.OnShow();
             view.isShow = true;
         }
         BringToTop(viewID);
         return(view);
     }
     Debug.LogError("无效ViewID:" + viewID);
     return(null);
 }
Beispiel #6
0
 /// <summary>
 /// 获取UIView
 /// </summary>
 /// <param name="viewID">UIView的ID</param>
 /// <returns></returns>
 public UIView GetUIView(UIViewID viewID)
 {
     if (viewDic.ContainsKey(viewID))
     {
         return(viewDic [viewID]);
     }
     Debug.LogError("无效ViewID:" + viewID);
     throw new NullReferenceException();
 }
Beispiel #7
0
 /// <summary>
 /// 显示界面蒙板
 /// </summary>
 /// <param name="uiObj">蒙板关联的UIId</param>
 public void ShowUIMask(UIViewID uiid)
 {
     mask.SetActive(true);
     mask.GetComponent <Image> ().DOKill();
     mask.GetComponent <Image> ().color = Color.clear;
     mask.GetComponent <Image> ().DOColor(new Color(0, 0, 0, 0.7f), 0.3f);
     ResortMaskLayer(uiid);
     if (!maskBindUIList.Contains(uiid))
     {
         maskBindUIList.Add(uiid);
     }
 }
Beispiel #8
0
    private void ShowView(UIViewID uiViewID)
    {
        for (int i = 0; i < uiViews.Length; i++)
        {
            UIView uiView = uiViews[i];

            if (uiView.UIViewID == uiViewID)
            {
                uiView.Show();
            }
        }
    }
Beispiel #9
0
 /// <summary>
 /// 设置UI到顶层
 /// </summary>
 public void BringToTop(UIViewID viewID, int i = 1)
 {
     if (viewDic.ContainsKey(viewID))
     {
         var view = viewDic [viewID];
         if (!view.isInit)
         {
             return;
         }
         var nextUI = GetUIView(viewID);
         nextUI.viewRoot.transform.SetSiblingIndex(nextUI.viewRoot.transform.parent.childCount - i);
     }
 }
Beispiel #10
0
 /// <summary>
 /// 设置UI到底层
 /// </summary>
 /// <param name="viewID"></param>
 public void BringToBottom(UIViewID viewID, int i = 0)
 {
     if (viewDic.ContainsKey(viewID))
     {
         var view = viewDic [viewID];
         if (!view.isInit)
         {
             return;
         }
         var nextUI = GetUIView(viewID);
         nextUI.viewRoot.transform.SetSiblingIndex(i);
     }
 }
Beispiel #11
0
    private void OnHideComplete(UIView uIView)
    {
        if (isSwappingViews)
        {
            ShowView(nextViewID);

            nextViewID = UIViewID.None;

            isSwappingViews = false;
        }

        currentViewID = UIViewID.None;
    }
Beispiel #12
0
 /// <summary>
 /// 移除UIView注册
 /// </summary>
 /// <param name="viewID">UIView的ID</param>
 public void RemoveUI(UIViewID viewID)
 {
     if (viewDic.ContainsKey(viewID))
     {
         var view = viewDic [viewID];
         view.OnRemove();
         viewDic.Remove(viewID);
         view = null;
     }
     else
     {
         Debug.LogError("无效ViewID:" + viewID);
     }
 }
Beispiel #13
0
    private void HideView(UIViewID uiViewID)
    {
        for (int i = 0; i < uiViews.Length; i++)
        {
            UIView uiView = uiViews[i];

            if (uiView.UIViewID == uiViewID)
            {
                uiView.Hide();

                break;
            }
        }
    }
Beispiel #14
0
    private void InitializeView(UIViewID uiViewID)
    {
        for (int i = 0; i < uiViews.Length; i++)
        {
            UIView uiView = uiViews[i];

            uiView.ShowCompleteEvent += OnShowComplete;

            uiView.HideCompleteEvent += OnHideComplete;

            if (uiView.UIViewID == uiViewID)
            {
                uiView.Initialize();
            }
        }
    }
Beispiel #15
0
    private void SwitchView(UIViewID uiViewID)
    {
        if (currentViewID == UIViewID.None ||
            currentViewID == uiViewID)
        {
            ShowView(uiViewID);

            return;
        }

        nextViewID = uiViewID;

        isSwappingViews = true;

        HideCurrentView();
    }
Beispiel #16
0
 /// <summary>
 /// 注册UIView
 /// </summary>
 /// <param name="viewID">UIView的ID</param>
 /// <param name="uiView">UIView对象</param>
 public void RegisterUI(UIViewID viewID, UIView uiView)
 {
     if (uiView != null)
     {
         if (!viewDic.ContainsKey(viewID))
         {
             viewDic.Add(viewID, uiView);
         }
         else
         {
             Debug.LogError("该UI:" + viewID + "已存在,请勿重复注册");
         }
     }
     else
     {
         Debug.LogError("注册失败,无效ViewID:" + viewID);
     }
 }
Beispiel #17
0
 /// <summary>
 /// 删除UIView
 /// </summary>
 /// <param name="viewID">UIView的ID</param>
 public void DestroyUI(UIViewID viewID)
 {
     if (viewDic.ContainsKey(viewID))
     {
         var view = viewDic [viewID];
         view.OnDestroy();
         view.isInit = false;
         view.isShow = false;
     }
     else
     {
         Debug.LogError("无效ViewID:" + viewID);
     }
     maskBindUIList.Remove(viewID);
     if (maskBindUIList.Count == 0)
     {
         HidenUIMask();
     }
     else
     {
         ResortMaskLayer(maskBindUIList [maskBindUIList.Count - 1]);
     }
 }
Beispiel #18
0
 private void OnShowComplete(UIView uIView)
 {
     currentViewID = uIView.UIViewID;
 }