iOS11拖动行为在UITableView中不起作用
我在开发允许在应用程序之间发送和接收数据的拖放iOS11功能时遇到了一个问题 在视图控制器的tableView中,通过将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方法,但从未调用它 拖放行为正常,表视图可以使用其他应用程序
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