/// <summary> /// 更新单个结点 /// </summary> /// <param name="odata"></param> public void UpdateCustomData(object odata) { if (odata == null) { return; } for (int i = 0; i < mDataSource.Count; i++) { object oSrcData = mDataSource[i]; if (oSrcData == odata) { mDataSource[i] = odata; if (mDataToTrans.ContainsKey(odata)) { Transform trans = mDataToTrans[odata]; if (trans != null) { UIGridItem griditem = trans.gameObject.GetComponent <UIGridItem>(); if (griditem != null) { griditem.setIndex(i); griditem.onClick = OnClick; griditem.oData = odata; mfnOnChangeRow(griditem); } } } break; } } }
public void UpdateCustomData(object odata) { if (odata == null) { return; } for (int i = 0; i < this.mDataSource.Count; i++) { object obj = this.mDataSource[i]; if (obj == odata) { this.mDataSource[i] = odata; if (this.mDataToTrans.ContainsKey(odata)) { Transform transform = this.mDataToTrans[odata]; if (transform != null) { UIGridItem component = transform.gameObject.GetComponent <UIGridItem>(); if (component != null) { component.setIndex(i); component.onClick = new UIGridItem.VoidDelegate(this.OnClick); component.oData = odata; this.mfnOnChangeRow(component); } } } break; } } }
///更新Grid排列 public void UpdateCustomView() { int x = 0; int y = 0; int total = 0; //wilson int iPageMax = 0; //wilson if (arrangement == Arrangement.Mix) { if (LimitNumber) { iPageMax = Mathf.FloorToInt(mPanel.width / cellWidth) + 1; } else { iPageMax = 999; } } else if (arrangement == Arrangement.Vertical) { if (LimitNumber) { iPageMax = (int)(mPanel.height / cellHeight) + 2; } else { iPageMax = 999; } } else if (arrangement == Arrangement.Horizontal) { if (LimitNumber) { iPageMax = Mathf.FloorToInt(mPanel.width / cellWidth) + 2; } else { iPageMax = 999; } } int iStartIndex = mOffsetRows * maxPerLine; int iEndIndex = iStartIndex + iPageMax * maxPerLine; ///1,去除不显示的数据关联 ///2,添加待显示的关联信息 for (int i = 0; i < mDataSource.Count; i++) { object oData = mDataSource[i]; if (i < iStartIndex || i > iEndIndex) { if (LimitNumber) { if (mDataToTrans.ContainsKey(oData)) { Transform trans = mDataToTrans[oData]; if (trans != null) { trans.gameObject.SetActive(false); mFreeTrans.Add(trans); } mDataToTrans.Remove(oData); } if (SelectItem != null) { if (miSelectIndex == i) { SelectItem(miSelectIndex, false, false); } } } //continue; } else { //int iIndex = i - iStartIndex; Transform trans = null; if (mDataToTrans.ContainsKey(oData)) { trans = mDataToTrans[oData]; } else { trans = GetFreeTrans(); ///早点出错,早点检查 if (trans == null) { return; } mDataToTrans.Add(oData, trans); } trans.name = UtilTools.StringBuilder("Item", i); float depth = trans.localPosition.z; Vector3 pos = Vector3.zero; //wilson if (arrangement == Arrangement.Mix) { pos.x = cellWidth * x + total / (maxPerLine * maxPerRank) * cellWidth * maxPerLine; pos.y = -cellHeight * y; pos.z = depth; } else if (arrangement == Arrangement.Vertical) { pos.x = cellWidth * x; pos.y = -cellHeight * y; pos.z = depth; } else if (arrangement == Arrangement.Horizontal) { pos.x = cellWidth * y; pos.y = -cellHeight * x; pos.z = depth; } trans.localPosition = pos; if (!trans.gameObject.activeSelf) { trans.gameObject.SetActive(true); } UIGridItem griditem = trans.gameObject.GetComponent <UIGridItem>(); if (griditem != null) { griditem.setIndex(i); griditem.onClick = OnClick; griditem.oData = oData; mfnOnChangeRow(griditem); } if (SelectItem != null) { if (miSelectIndex == i) { SelectItem(miSelectIndex, true, false); } } } //wilson if (arrangement == Arrangement.Mix) { if (++x >= maxPerLine && maxPerLine > 0) { x = 0; if (++y >= maxPerRank && maxPerRank > 0) { y = 0; } } } else { if (++x >= maxPerLine && maxPerLine > 0) { x = 0; ++y; } } ++total; } }
public void UpdateCustomView() { int num = 0; int num2 = 0; int num3 = 0; if (this.arrangement == UIGrid.Arrangement.Vertical) { num3 = (int)(this.mPanel.height / this.cellHeight) + 2; } else if (this.arrangement == UIGrid.Arrangement.Horizontal) { num3 = Mathf.FloorToInt(this.mPanel.width / this.cellWidth) + 2; } int num4 = this.mOffsetRows * this.maxPerLine; int num5 = num4 + num3 * this.maxPerLine; for (int i = 0; i < this.mDataSource.Count; i++) { object obj = this.mDataSource[i]; if (i < num4 || i > num5) { if (this.mDataToTrans.ContainsKey(obj)) { Transform transform = this.mDataToTrans[obj]; if (transform != null) { transform.gameObject.SetActive(false); this.mFreeTrans.Add(transform); } this.mDataToTrans.Remove(obj); } if (this.SelectItem != null && this.miSelectIndex == i) { this.SelectItem(this.miSelectIndex, false, false); } } else { int num6 = i - num4; Transform transform2; if (this.mDataToTrans.ContainsKey(obj)) { transform2 = this.mDataToTrans[obj]; } else { transform2 = this.GetFreeTrans(); if (transform2 == null) { return; } this.mDataToTrans.Add(obj, transform2); } transform2.name = DelegateProxy.StringBuilder(new object[] { "Item", i }); float z = transform2.localPosition.z; Vector3 zero = Vector3.zero; if (this.arrangement == UIGrid.Arrangement.Vertical) { zero.x = this.cellWidth * (float)num; zero.y = -this.cellHeight * (float)num2; zero.z = z; } else { zero.x = this.cellWidth * (float)num2; zero.y = -this.cellHeight * (float)num; zero.z = z; } transform2.localPosition = zero; if (!transform2.gameObject.activeSelf) { transform2.gameObject.SetActive(true); } UIGridItem component = transform2.gameObject.GetComponent <UIGridItem>(); if (component != null) { component.setIndex(i); component.onClick = new UIGridItem.VoidDelegate(this.OnClick); component.oData = obj; this.mfnOnChangeRow(component); } if (this.SelectItem != null && this.miSelectIndex == i) { this.SelectItem(this.miSelectIndex, true, false); } } if (++num >= this.maxPerLine && this.maxPerLine > 0) { num = 0; num2++; } } }