Beispiel #1
0
 /// <summary>
 /// 释放资源
 /// </summary>
 public void Dispose()
 {
     OnUpdateItemEvent = null;
     mChildrens.Clear();
     mCorners  = new Vector3[4];
     mMaxIndex = 0;
     mCurIndex = 0;
 }
Beispiel #2
0
    public void InitListData(int[] groups, OnUpdateItem onUpdateItemDelegate, OnUpdateGroup onUpdateGroupDelegate)
    {
        this.groupCounts = new int[groups.Length];
        for (int i = 0; i < groups.Length; i++)
        {
            int extra = groups[i] % this.countPerLine;
            this.groupCounts[i] = groups[i] + (extra > 0 ? this.countPerLine - extra : 0);
        }

        this.onUpdateItem  = onUpdateItemDelegate;
        this.onUpdateGroup = onUpdateGroupDelegate;
        this.InitData();
    }
    public EquidistanceRecycle(UIScrollView sv, int dataCount, int size, int dataColum,
                               OnLoadItem loadItem, OnUpdateItem updateItem, int extraShownum = 1)
    {
        mScrollView  = sv;
        DataCount    = dataCount;
        cellSize     = size;
        halfCellSize = (float)cellSize / 2;

        mDataColumnLimit = dataColum;

        onLoadItem   = loadItem;
        onUpdateItem = updateItem;

        extraShowNum = extraShownum;
        InitNeed();
    }
    /// <summary>
    /// UIRecycleTable唯一入口
    /// </summary>
    /// <param name="pScrollView"></param>
    /// <param name="pOnLoadItem">加载item</param>
    /// <param name="pOnUpdateItem">更新item</param>
    /// <param name="pOnDeleteItem">删除item</param>
    /// <param name="pGetPrefabType">当有多种Prefab类型的时候必须绑定该委托,然后在ItemController初始化时为IRecycleTable接口中的prefabType赋值</param>
    public UIRecycleTable(UIScrollView pScrollView, OnLoadItem pOnLoadItem, OnUpdateItem pOnUpdateItem, OnDeleteItem pOnDeleteItem, GetPrefabType pGetPrefabType)
    {
        if (pScrollView == null)
        {
            return;
        }

        scrollView      = pScrollView;
        panel           = scrollView.panel;
        scrollViewTrans = scrollView.transform;
        onLoadItem      = pOnLoadItem;
        onUpdateItem    = pOnUpdateItem;
        onDeleteItem    = pOnDeleteItem;
        getPrefabType   = pGetPrefabType;

        Init();
    }
Beispiel #5
0
    public EquidistancePageRecycle(UIScrollView sv, int dataCount, int size, int pageColum,
                                   OnLoadItem loadItem, OnUpdateItem updateItem, UIGrid.Arrangement arrangement = UIGrid.Arrangement.Horizontal,
                                   bool isNeedFirstLastLimit = true, int extraShownum = 1, int minDragCanMoveDistance = 0, bool isNeedFirstLastLimitRecycle = true)
    {
        mScrollView     = sv;
        DataCount       = dataCount;
        cellSize        = size;
        halfCellSize    = (float)cellSize / 2;
        pageColumnLimit = pageColum;
        extraShowNum    = extraShownum;

        onLoadItem      = loadItem;
        onUpdateItem    = updateItem;
        DataArrangeType = arrangement;

        minDragMoveDistance         = minDragCanMoveDistance;
        IsNeedFirstLastLimit        = isNeedFirstLastLimit;
        IsNeedFirstLastLimitRecycle = isNeedFirstLastLimitRecycle;

        InitNeed();
    }
Beispiel #6
0
    public void InitListData(GameObject itemPrefab, int count, int countPerLine, float bottomMargin, ScrollRect scrollRect, OnUpdateItem onUpdateItemDelegate)
    {
        this.itemPrefab = itemPrefab;
        this.itemPrefab.SetActive(false);
        this.cellwidth    = this.itemPrefab.GetComponent <RectTransform>().sizeDelta.x;
        this.cellheight   = this.itemPrefab.GetComponent <RectTransform>().sizeDelta.y;
        this.dataCount    = count;
        this.countPerLine = countPerLine;
        this.fitParent    = countPerLine == 0;
        this.bottomMargin = bottomMargin;
        this.scrollRect   = scrollRect;

        this.onUpdateItem = onUpdateItemDelegate;
        this.InitData();
    }
Beispiel #7
0
 public void SetUpdateEvent(OnUpdateItem updateEvent)
 {
     onUpdateItem = updateEvent;
 }