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); } }
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); } }
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; } } }
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; } } }
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; } } }
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 : ""; }
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); } }
/// <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); } } }
public void RemoveItem(CButtonToggle tog) { _unUseList.Add(tog); _nowUseList.Remove(tog); tog.gameObject.SetActive(false); }