Поведение перетаскивания iOS11 не работает в UITableView - PullRequest
0 голосов
/ 03 июля 2018

Я столкнулся с проблемой при разработке функции Drag & Drop iOS11, позволяющей отправлять и получать данные между приложениями.

В tableView контроллера представления, для которого dragDelegate и dropDelegate назначены на viewDidLoad для самого контроллера представления, я реализую

- (NSArray<UIDragItem *> *)tableView:(UITableView *)tableView itemsForBeginningDragSession:(id<UIDragSession>)session atIndexPath:(NSIndexPath *)indexPath метод, но он никогда не вызывается.

Режим отбрасывания работает правильно, и табличное представление может использовать элементы из других приложений, таких как Фотографии или Заметки. Но когда я касаюсь строки табличного представления в течение нескольких секунд, ничего не происходит. Анимация лифта не происходит и делегат перетаскивания не срабатывает.

Есть мысли? Я что-то пропустил?

1 Ответ

0 голосов
/ 03 июля 2018

Пожалуйста, попробуйте ниже методы делегирования для переупорядочения ячейки.

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewCellEditingStyleNone;
}

Реализация следующего метода источника данных UITableView в вашем проекте.

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

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{
[dataArray exchangeObjectAtIndex:sourceIndexPath.row withObjectAtIndex:destinationIndexPath.row];
[self.tableView reloadData];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...