Esempio n. 1
0
        /**
         * Removes a cell at a given index
         *
         * @param idx index to find a cell
         */
        public void RemoveCellAtIndex(int idx)
        {
            if (idx == CCArrayForObjectSorting.CC_INVALID_INDEX)
            {
                return;
            }

            var uCountOfItems = m_pDataSource.NumberOfCellsInTableView(this);

            if (uCountOfItems == 0 || idx > uCountOfItems - 1)
            {
                return;
            }

            int             newIdx;
            CCTableViewCell cell = CellAtIndex(idx);

            if (cell == null)
            {
                return;
            }

            newIdx = m_pCellsUsed.IndexOfSortedObject(cell);

            //remove first
            _moveCellOutOfSight(cell);

            m_pIndices.Remove(idx);
            //    [m_pIndices shiftIndexesStartingAtIndex:idx+1 by:-1];
            for (int i = m_pCellsUsed.Count - 1; i > newIdx; i--)
            {
                cell = (CCTableViewCell)m_pCellsUsed[i];
                _setIndexForCell(cell.Index - 1, cell);
            }
        }
Esempio n. 2
0
        /**
         * Inserts a new cell at a given index
         *
         * @param idx location to insert
         */

        public void InsertCellAtIndex(int idx)
        {
            if (idx == CCArrayForObjectSorting.CC_INVALID_INDEX)
            {
                return;
            }

            var uCountOfItems = m_pDataSource.NumberOfCellsInTableView(this);

            if (uCountOfItems == 0 || idx > uCountOfItems - 1)
            {
                return;
            }

            int newIdx;
            var cell = (CCTableViewCell)m_pCellsUsed.ObjectWithObjectID(idx);

            if (cell != null)
            {
                newIdx = m_pCellsUsed.IndexOfSortedObject(cell);
                for (int i = newIdx; i < m_pCellsUsed.Count; i++)
                {
                    cell = (CCTableViewCell)m_pCellsUsed[i];
                    _setIndexForCell(cell.Index + 1, cell);
                }
            }

            //   [m_pIndices shiftIndexesStartingAtIndex:idx by:1];

            //insert a new cell
            cell = m_pDataSource.TableCellAtIndex(this, idx);
            _setIndexForCell(idx, cell);
            _addCellIfNecessary(cell);

            _updateContentSize();
        }