UITableViewCell переупорядочивает управление, не удаляет кнопку и салфетки для удаления

У меня есть UITableView, который я хотел бы всегда отображать с помощью элемента управления переупорядочением, никогда не показывать значок маленького значка удаления и всегда разрешать удаление удаленных файлов. Возможно ли это?

До сих пор я обнаружил только два варианта:

  • Разрешая просто удалять файлы (UITableViewCellEditingStyleDelete),
  • Разрешить просто управление переупорядочением (setEditing: YES, UITableViewCellEditingStyleNone).

Спасибо за чтение

Ответ 1

Для этого я объединил два проекта с открытым исходным кодом в:

https://github.com/adamraudonis/UITableViewCell-Swipe-for-Options

Надеюсь, что это поможет! В настоящее время вы можете переупорядочивать, долгое нажатие в любом месте TableViewCell и прокручивание, чтобы удалить, не показывая красный круг.

Ответ 2

Я снова проверил эту проблему для iOS 8, и, несмотря на то, что поддержка удаленного управления удалением и переупорядочения, к сожалению, пока не поддерживается API UITableView. Поэтому вам нужно добавить нестандартный инструмент для перетаскивания и переупорядочения.

Завершена реализация на 80%, которая содержит как необходимые функции:

https://github.com/simonnickel/SNLInteractionTableView.

Все, что вам нужно, это заменить логику swipe только перемещением ячейки UITableView влево. И замените скрытое/показанное изображение кнопкой удаления

Ответ 3

По-видимому UITableView имеет частный метод api, чтобы сделать именно это:

Изменить порядок с помощью демонстрации с удалением-удалением

if ([self.tableView respondsToSelector:@selector(_setAllowsReorderingWhenNotEditing:)]) {
    [self.tableView _setAllowsReorderingWhenNotEditing:YES];
} else {
    // do not ignore this branch 
}

Работает в iOS 8, 9 и текущих бета-версиях. Тем не менее, вы несете ответственность за проверку доступности метода, чтобы избежать сбоев. Все равно было бы лучше, чем использовать некоторую перегруженную стороннюю библиотеку (которая, скорее всего, будет разбита на будущие выпуски iOS).