コード例 #1
0
    void KillCellAtTopOrBottom(TopOrBottom TorB)
    {
        UITableViewCellHolder cacheCellHolder = null;
        UITableViewCell cell = null;
        int index = 0;
        if (TorB == TopOrBottom.Top)
        {
            //find first cache cell
            cacheCellHolder = _cellHolders[_cacheStartRow];
            cell = cacheCellHolder.Cell;
            //index+1
            index = cell.Index+1;

            //delete or put it into pool
            EnqueueReusableCell(cacheCellHolder);

            //change cacheIndex
            _cacheStartRow = index;
            this.DEBUG_CacheStartRow = index;
        }
        else
        {
            //find last cache cell
            cacheCellHolder = _cellHolders[_cacheLastRow];
            cell = cacheCellHolder.Cell;
            //index-1
            index = cell.Index-1;

            //delete or put it into pool
            EnqueueReusableCell(cacheCellHolder);

            //change cacheIndex
            _cacheLastRow = index;
            this.DEBUG_CacheLastRow = index;
        }
    }
コード例 #2
0
    void GenerateCellToTopOrBottom(TopOrBottom TorB)
    {
        if (TorB == TopOrBottom.Top)
        {
            if (_cacheStartRow <= 0) { return; }

            UITableViewCellHolder oldCellHolder = _cellHolders[_cacheStartRow];
            int index = oldCellHolder.Cell.Index-1;

            UITableViewCellHolder newCellHolder = _cellHolders[index];

            UITableViewCell cell = DataSource.CellForRowAtIndexInTableView(this, index);
            newCellHolder.Cell = cell;

            float cellHeight = DataSource.HeightForRowInTableView(this, index);
            newCellHolder.Cell.Index = index;

            newCellHolder.Cell.SetRect(oldCellHolder.Cell.Left, oldCellHolder.Cell.Top/*+cellHeight*/, oldCellHolder.Cell.localSize.x, cellHeight);
            newCellHolder.Cell.SetDragTableView(this);

            SetTouchAbilityForCellHolder(newCellHolder);
            SetDeletabilityForCellHolder(newCellHolder);

            _cacheStartRow = index;
            this.DEBUG_CacheStartRow = index;
        }
        else
        {
            if (_cacheLastRow >= _cellHolders.Count-1) { return; }

            UITableViewCellHolder oldCellHolder = _cellHolders[_cacheLastRow];
            int index = oldCellHolder.Cell.Index+1;

            UITableViewCellHolder newCellHolder = _cellHolders[index];

            UITableViewCell cell = DataSource.CellForRowAtIndexInTableView(this, index);
            newCellHolder.Cell = cell;

            float cellHeight = DataSource.HeightForRowInTableView(this, index);
            newCellHolder.Cell.Index = index;

            newCellHolder.Cell.SetRect(oldCellHolder.Cell.Left, oldCellHolder.Cell.Bottom-cellHeight, oldCellHolder.Cell.localSize.x, cellHeight);
            newCellHolder.Cell.SetDragTableView(this);

            SetTouchAbilityForCellHolder(newCellHolder);
            SetDeletabilityForCellHolder(newCellHolder);

            _cacheLastRow = index;
            this.DEBUG_CacheLastRow = index;
        }
    }