Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS11拖动行为在UITableView中不起作用_Ios_Uitableview_Drag And Drop_Ios11 - Fatal编程技术网

iOS11拖动行为在UITableView中不起作用

iOS11拖动行为在UITableView中不起作用,ios,uitableview,drag-and-drop,ios11,Ios,Uitableview,Drag And Drop,Ios11,我在开发允许在应用程序之间发送和接收数据的拖放iOS11功能时遇到了一个问题 在视图控制器的tableView中,通过将dragDelegate和dropDelegate分配给视图控制器本身,我实现了 -(NSArray*)tableView:(UITableView*)tableView itemsForBeginningDragSession:(id)session atIndexPath:(nsindepath*)indepath方法,但从未调用它 拖放行为正常,表视图可以使用其他应用程序

我在开发允许在应用程序之间发送和接收数据的拖放iOS11功能时遇到了一个问题

在视图控制器的tableView中,通过将
dragDelegate
dropDelegate
分配给视图控制器本身,我实现了

-(NSArray*)tableView:(UITableView*)tableView itemsForBeginningDragSession:(id)session atIndexPath:(nsindepath*)indepath
方法,但从未调用它

拖放行为正常,表视图可以使用其他应用程序(如照片或便笺)中的项目。但是,当我轻触表视图行几秒钟时,什么也没有发生。不会出现提升动画,也不会激发拖动代理


有什么想法吗?是否缺少所需的内容?

请尝试以下重新排序单元格的委托方法

- (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];
}

在iPhone上,除了将
dragDelegate
设置外,还必须将
UITableView
上的
dragInteractionEnabled
设置为true。在iPad上,此属性默认设置为true。

此属性中的任何内容都不会引发itemsForBeginningDragSession委托方法。。。谢谢Pankaj