Изменение порядка разделов в таблице путем перетаскивания строки вверх или вниз с помощью делегата перетаскивания (iOS 11) - PullRequest
1 голос
/ 20 апреля 2019

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

Я нашел два способа осуществить перестановку табличного представления.

Первый способ: использовать перетаскивание делегата

документация перетаскивания делегата с поддержкой перетаскивания в виде таблицы в iOS11

Itдля меня очень важно не допустить перетаскивания между приложениями.

Можно ли использовать делегат перетаскивания в этой ситуации? Или мне следует использовать другое решение?

//didLoad

[self.myTableView setDragDelegate: self];
[self.myTableView setDragInteractionEnabled: YES];

// itemsForBeginningDragSession

(NSArray<UIDragItem *> *)tableView:(UITableView *)tableView
                itemsForBeginningDragSession:(id<UIDragSession>)session
                                 atIndexPath:(NSIndexPath *)indexPath  API_AVAILABLE(ios(11.0)) {
Model *model = self.listOfX[indexPath.section];

NSItemProvider *itemProvider = [[NSItemProvider alloc] initWithObject: model];

UIDragItem *dragItem = [[UIDragItem alloc] initWithItemProvider: itemProvider];

return @[dragItem];
}

второй способ: режим редактирования таблицы

[self.myTableView setEditing: YES];

Я не хочу добавлять кнопку и изменять таблицупросмотр состояния в режиме редактирования.Я хочу включить перестановку долгим нажатием.

Ответы [ 2 ]

2 голосов
/ 20 апреля 2019

Первый вариант использования делегата перетаскивания в порядке. Убедитесь, что вы реализуете метод UITableViewDragDelegate - (BOOL)tableView:(UITableView *)tableView dragSessionIsRestrictedToDraggingApplication:(id<UIDragSession>)session и возвращаете YES. Это обеспечит перетаскивание в одном приложении.

0 голосов
/ 20 апреля 2019

Если для этой цели Флориан Мильке использовал FMMoveTable , это прекрасно работает. Но теперь он прекратил это, заявив, что вы должны использовать вместо этого функциональность IOS 11 Drag & Drop. Хотя я не понимаю, как можно ограничить это одной таблицей.

Другой возможностью является использование учебника, упомянутого в этого другого ответа StackOverflow .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...