我想在表视图中启用拖放。我只想拖动项目在应用程序,我不希望它被转移到其他应用程序。
我找到了两种实现表视图重新排列的方法。
第一种方法:使用拖放委托
对我来说,不允许应用程序之间的拖放是非常重要的。
在这种情况下,正在使用拖动委托确定?还是应该使用其他解决方案?
// 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];
}第二种方式: tableview编辑模式
[self.myTableView setEditing: YES];我不想添加一个按钮并将表视图状态更改为编辑模式。我想通过长时间的媒体重新安排。
发布于 2019-04-20 14:01:49
使用拖放委托的第一个选项是可以的。确保您实现了UITableViewDragDelegate方法- (BOOL)tableView:(UITableView *)tableView dragSessionIsRestrictedToDraggingApplication:(id<UIDragSession>)session并返回YES。这将确保拖放必须发生在同一应用程序。
发布于 2019-04-20 14:00:27
如果一直在使用FMMoveTable由Florian为此目的,这是伟大的工作。但是他现在已经停止使用它了,他说你应该使用IOS 11的拖放功能。虽然我不知道如何将其限制在单个表上。
另一种可能是使用另一个StackOverflow的答案中提到的教程。
https://stackoverflow.com/questions/55770699
复制相似问题