2015-09-15 2 views
0

Как я могу сделать палку UITableViewCell на дно UITableView, она принадлежит ни к чему?Как сделать палку UITableViewCell последней позиции

Эта строка больше не может быть перемещена или отредактирована (потому что для этого я сконфигурировал canMoveRowAtIndexPath: и canEditRowAtIndexPath:), но над ней все еще можно перемещать ее ниже. Я хочу, чтобы последняя строка всегда была последней.

Массив, который действует как источник данных, содержит экземпляры пользовательского класса, который я создал. Однако я хотел бы, чтобы содержимое последней ячейки было NSString. Например, @"Last row...".

Поэтому я хочу фиксированный контент (я достиг этого, удалив параметр редактирования для строки) и фиксированную позицию (всегда последняя независимо от того, что).

Я хотел бы знать, есть ли способ достичь этого без нижнего колонтитула.

Возможно ли это? Как?

спасибо.

+0

Если это простая текстовая ячейка, то о размещении 'UIView' с' UILabel' внутри над таблицей и поместите ее в нижней части таблицы. Вы также можете добавить «пустой cell "как последнюю ячейку той же высоты, чтобы гарантировать, что все ячейки видны при прокрутке в нижней части таблицы. – teamnorge

+0

Я согласен с @teamnorge, если вы не хотите добавлять пустую ячейку, вы можете изменить ее в таблице om ограничение –

+0

Я не против делать это в ячейке. На самом деле я предпочел бы иметь фактическую ячейку, а не другую точку зрения сверху. Поэтому, если у вас есть представление о том, как это сделать с помощью ячейки, пожалуйста, поделитесь ею. Кроме того, измените нижнее ограничение таблицы как? –

ответ

0

Я изучаю программирование iOS прямо сейчас, следуя учебнику. Я столкнулся с тем же вопросом, что и ваш. Я нашел решение на форуме книги. Здесь я размещаю решение для вас. После того, как вы настроите canMoveRowAtIndexPath:, я отправляю только оставшуюся часть, которая также является сложной для вас.

Человек, который написал решение, сказал: «главное, что я пытался справиться с останавливает другие элементы, движущиеся вверх последний как и возможность редактировать» Помните, что при перемещении ряд, вы должны сообщить движение к его источнику данных, отправив сообщение: tableView:moveRowAtIndexPath:toIndexPath: Итак, сначала вы должны реализовать этот метод в TableViewController как этот

-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath 

    { 
    if(destinationIndexPath.row == [yourRowArray count] 
    { 
    return; 
    } 
    else{ 
    originally moving method you implemented before; 
    } 
    } 

во-вторых, "Это важный бит, нам нужно чтобы убедиться, что вы попытаетесь установить предлагаемый индекс как нижний элемент, который он терпит неудачу, и возвращается к исходному указателю. "на плакате в форуме.

- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath 
{ 
    if(sourceIndexPath.section != proposedDestinationIndexPath.section) 
    { 
     return sourceIndexPath; 
    } 
    else 
    { 
     if (proposedDestinationIndexPath.row == [yourRowArray count]) { 
      return sourceIndexPath; 
     } else { 
      return proposedDestinationIndexPath; 
     } 
    } 
} 

Готово! Просто правильно? Тогда вы найдете без таблицы сноски использовать только простой текст ячейку, последняя ячейка не может быть перемещена и отредактирована и может никогда выходить из последней позиции.

Смежные вопросы