예제 #1
0
        public virtual void reloadData()
        {
            for (int i = 0; i < cellsUsed.Count; i++)
            {
                LTableViewCell cell = cellsUsed[i];
                cellsFreed.Add(cell);
                //cell.node.transform.SetParent(null);
                cell.node.SetActive(false);
                cell.reset();
            }

            Transform tran = transform.Find("container/cell_tpl");

            if (tran != null)
            {
                tran.gameObject.SetActive(false);
            }

            cellsUsed.Clear();
            indices.Clear();
            positions.Clear();
            updatePositions();
            setContentOffsetToTop();
            onScrolling();
            relocateContainer();
        }
예제 #2
0
        public virtual void reloadData()
        {
            for (int i = 0; i < cellsUsed.Count; i++)
            {
                LTableViewCell cell = cellsUsed[i];
                cellsFreed.Add(cell);
                cell.node.transform.SetParent(null);
                cell.reset();
            }

            cellsUsed.Clear();
            indices.Clear();
            positions.Clear();
            updatePositions();
            setContentOffsetToTop();
            onScrolling();
            relocateContainer();
        }
예제 #3
0
        protected override void onScrolling()
        {
            if (cellsCount == 0)
            {
                return;
            }

            int beginIdx = 0, endIdx = 0;

            beginIdx = cellBeginIndexFromOffset(getContentOffset());
            endIdx   = cellEndIndexFromOffset(getContentOffset());

            while (cellsUsed.Count > 0)
            {
                LTableViewCell cell = cellsUsed[0];
                int            idx  = cell.idx;

                if (idx < beginIdx)
                {
                    indices.Remove(idx);
                    cellsUsed.Remove(cell);
                    cellsFreed.Add(cell);
                    cell.reset();
                    cell.node.transform.SetParent(null);
                }
                else
                {
                    break;
                }
            }

            while (cellsUsed.Count > 0)
            {
                LTableViewCell cell = cellsUsed[cellsUsed.Count - 1];
                int            idx  = cell.idx;

                if (idx > endIdx && idx < cellsCount)
                {
                    indices.Remove(idx);
                    cellsUsed.RemoveAt(cellsUsed.Count - 1);
                    cellsFreed.Add(cell);
                    cell.reset();
                    cell.node.transform.SetParent(null);
                }
                else
                {
                    break;
                }
            }

            for (int idx = beginIdx; idx <= endIdx && idx < cellsCount; ++idx)
            {
                if (indices.ContainsKey(idx))
                {
                    continue;
                }
                updateCellAtIndex(idx);
            }

            base.onScrolling();
        }