/// <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;
            }
        }
    }
Exemple #2
0
 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;
        }
    }
Exemple #4
0
    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++;
            }
        }
    }