Контроль перестановки не отображается в виде таблицы

Я создал приложение iOS на основе шаблона приложения на основе навигации, приложение поддерживается базой данных Core.

При нажатии кнопки "Изменить" я хочу, чтобы строки были переупорядочиваемыми и удаляемыми.

При создании ячеек я добавил эту строку:

cell.showsReorderControl = YES;

И метод tableView:canMoveRowAtIndexPath: возвращает YES.

Но управление переупорядочением не отображается в строке, я что-то не хватает?

Ответы

Ответ 1

Из UITableViewCell показывает документыReorderControl:

Чтобы появился элемент управления переупорядочением, вы должны не только установить это свойство, но реализует метод UITableViewDataSource Tableview: moveRowAtIndexPath: toIndexPath:. Кроме того, если данные source реализует tableView: canMoveRowAtIndexPath: для возврата NO, управление переупорядочением не отображается в указанной строке.

Ответ 2

UITableView также должен находиться в режиме редактирования, который по умолчанию не включен. Обычно для переключения между режимом редактирования используется кнопка или какой-либо другой элемент управления. Чтобы поместить представление таблицы в режим редактирования (мы предполагаем, что у вас есть UITableViewController, и ваше свойство tableView правильно настроено, если нет, настройте для своей среды):

// This line somewhere inside the UITableViewController will
// animate in the various editing controls and make sure they
// show up on your table.
[[self tableView] setEditing:YES animated:YES];

Ответ 3

попробуйте это.,.Вы должны реализовать эти два метода, чтобы получить этот контроль порядка в режиме редактирования

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
  return YES;
}

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

}