Пример #1
0
 protected override void ChangeIndex(bool needFun = true)
 {
     if (_nowUseList == null)
     {
         return;
     }
     selBtn = null;
     for (int i = 0, len = _nowUseList.Count; i < len; i++)
     {
         CButtonToggle btn = _nowUseList[i];
         btn.seleted = (Convert.ToInt32(btn.gameObject.GetData()) == index);
         if (btn.seleted)
         {
             selBtn        = btn;
             btn.TextColor = selColor;
             if (isSelOutLine)
             {
                 btn.Label.effectColor = selOutLineColor;
             }
         }
         else
         {
             btn.TextColor = normalColor;
             if (isSelOutLine)
             {
                 btn.Label.effectColor = outLineColor;
             }
         }
     }
     if (selBtn != null && needFun && changeFun != null && index >= 0)
     {
         var data = selBtn.gameObject.GetData();
         changeFun.DynamicInvoke(data != null ? Convert.ToInt32(data) : index);
     }
 }
Пример #2
0
 public void UpdateItemPos()
 {
     for (int i = 0, len = _nowUseList.Count; i < len; i++)
     {
         CButtonToggle tol = _nowUseList[i];
         float         x   = tol.transform.localPosition.x;
         float         y   = tol.transform.localPosition.y;
         if (i != 0)
         {
             CButtonToggle tol2 = _nowUseList[i - 1];
             if (isHorizon)
             {
                 x = tol2.transform.localPosition.x + tol2.width + btnSpace;
             }
             else
             {
                 y = tol2.transform.localPosition.y - tol2.height - btnSpace;
             }
         }
         else
         {
             if (isHorizon)
             {
                 x = tog0Pos.x;
             }
             else
             {
                 y = tog0Pos.y;
             }
         }
         tol.transform.localPosition = new Vector3(x, y, 0);
     }
 }
Пример #3
0
 public void SetSelOutLine(Color colNor, Color colSel)
 {
     SetOutLine(colNor);
     isSelOutLine    = true;
     selOutLineColor = colSel;
     if (_nowUseList != null)
     {
         for (int i = 0, len = _nowUseList.Count; i < len; i++)
         {
             CButtonToggle btn = _nowUseList[i];
             btn.Label.applyGradient = false;
         }
     }
 }
Пример #4
0
 public void SetOutLine(Color col)
 {
     outLineColor = col;
     effect       = UILabel.Effect.Outline;
     if (_nowUseList != null)
     {
         for (int i = 0, len = _nowUseList.Count; i < len; i++)
         {
             CButtonToggle btn = _nowUseList[i];
             btn.Label.effectStyle = effect;
             btn.Label.effectColor = outLineColor;
         }
     }
 }
Пример #5
0
 public override void Reset()
 {
     base.Reset();
     for (int i = 0, len = _nowUseList.Count; i < len; i++)
     {
         CButtonToggle btn = _nowUseList[i];
         if (btn.Label != null)
         {
             btn.Label.effectStyle = effect;
             btn.Label.effectColor = outLineColor;
         }
         btn.TextColor = normalColor;
         if (i == 0)
         {
             tog0Pos = btn.transform.localPosition;
         }
     }
 }
Пример #6
0
 public virtual void Reset()
 {
     //            int group = gameObject.GetInstanceID();
     _nowUseList = new List <CButtonToggle>();
     _unUseList  = new List <CButtonToggle>();
     _dic        = new Dictionary <int, CButtonToggle>();
     for (int i = 0; i < transform.childCount; i++)
     {
         CButtonToggle toggle = transform.GetChild(i).GetComponent <CButtonToggle>();
         if (toggle != null)
         {
             //保证回调的index都是初始的时候的index 省的模块那边蛋疼要去动态改变index的判断
             toggle.gameObject.SetData(i);
             EventUtil.AddClick(toggle.gameObject, OnClick, i);
             _nowUseList.Add(toggle);
             _dic[i] = toggle;
         }
     }
     normalSp = _nowUseList.Count != 0 ? _nowUseList[0].normalSprite : "";
 }
Пример #7
0
 protected virtual void ChangeIndex(bool needFun = true)
 {
     if (_nowUseList == null)
     {
         return;
     }
     selBtn = null;
     for (int i = 0, len = _nowUseList.Count; i < len; i++)
     {
         CButtonToggle btn = _nowUseList[i];
         btn.seleted = (Convert.ToInt32(btn.gameObject.GetData()) == index);
         if (btn.seleted)
         {
             selBtn = btn;
         }
     }
     if (selBtn != null && needFun && changeFun != null && index >= 0)
     {
         var data = selBtn.gameObject.GetData();
         changeFun.DynamicInvoke(data != null ? Convert.ToInt32(data) : index);
     }
 }
Пример #8
0
        /// <summary>
        /// 需要改变选项卡的值及其响应时使用
        /// </summary>
        /// <param name="labelStrs">选项卡的字符串列表</param>
        /// <param name="datas">选项卡携带的值,changeIndex时,优先响应携带值,否则响应index</param>
        /// <param name="isHorizon">排布水平,否则垂直排列</param>
        public void UpdateLabels(List <string> labelStrs, List <int> datas = null, bool isHorizon = true)
        {
            this.isHorizon = isHorizon;
            this.datas     = datas;
            this.labelStrs = labelStrs;
            if (!isInit)
            {
                return;
            }
            var           needLen  = labelStrs.Count;
            var           len      = _nowUseList.Count;
            var           count    = Math.Min(needLen, len);
            var           needData = datas != null && datas.Count == labelStrs.Count;
            CButtonToggle box      = null;

            if (len > 1)
            {
                if (isHorizon)
                {
                    dist = (int)(_nowUseList[1].transform.localPosition.x - _nowUseList[0].transform.localPosition.x);
                }
                else
                {
                    dist = (int)(_nowUseList[1].transform.localPosition.y - _nowUseList[0].transform.localPosition.y);
                }
            }
            else if (dist == 0)
            {
                dist = isHorizon ? _nowUseList[0].width : -_nowUseList[0].height;
            }
            for (var i = 0; i < count; i++)
            {
                _nowUseList[i].Text = labelStrs[i];
                if (needData)
                {
                    _nowUseList[i].gameObject.SetData(datas[i]);
                    EventUtil.RemoveClick(_nowUseList[i].gameObject, OnClick);
                    EventUtil.AddClick(_nowUseList[i].gameObject, OnClick, (datas[i]));
                }
            }
            if (len < needLen)
            {
                for (var i = len; i < needLen; i++)
                {
                    if (_unUseList.Count > 0)
                    {
                        box = _unUseList[0];
                        _unUseList.RemoveAt(0);
                        box.Text = labelStrs[i];
                    }
                    else
                    {
                        var boxObj = Instantiate(_nowUseList[0].gameObject) as GameObject;
                        if (boxObj != null)
                        {
                            boxObj.name      = "Tab" + i;
                            box              = boxObj.GetComponent <CButtonToggle>();
                            box.normalSprite = normalSp;
                            box.Text         = labelStrs[i];
                        }
                    }
                    if (box != null)
                    {
                        if (needData)
                        {
                            box.gameObject.SetData(datas[i]);
                        }
                        box.transform.parent = transform;
                        if (_nowUseList.Count > 0)
                        {
                            if (isHorizon)
                            {
                                box.transform.localPosition = new Vector2(_nowUseList[0].transform.localPosition.x + dist * i,
                                                                          _nowUseList[0].transform.localPosition.y);
                            }
                            else
                            {
                                box.transform.localPosition = new Vector2(_nowUseList[0].transform.localPosition.x,
                                                                          _nowUseList[0].transform.localPosition.y + dist * i);
                            }
                        }
                        else
                        {
                            box.transform.localPosition = Vector2.zero;
                        }
                        box.transform.localScale = Vector2.one;
                        box.gameObject.SetActive(true);
                        if (needData)
                        {
                            EventUtil.RemoveClick(box.gameObject, OnClick);
                            EventUtil.AddClick(box.gameObject, OnClick, (datas[i]));
                        }
                        _nowUseList.Add(box);
                    }
                }
            }
            else
            {
                for (var i = 0; i < len; i++)
                {
                    box = _nowUseList[i];
                    box.gameObject.SetActive(true);
                }
                for (var i = len - 1; i >= needLen; i--)
                {
                    box = _nowUseList[i];
                    box.gameObject.SetActive(false);
                    _nowUseList.RemoveAt(i);
                    //_unUseList.Add(box);
                    _unUseList.Insert(0, box);
                }
            }
        }
Пример #9
0
 public void RemoveItem(CButtonToggle tog)
 {
     _unUseList.Add(tog);
     _nowUseList.Remove(tog);
     tog.gameObject.SetActive(false);
 }