我知道在使用新的
例如,在此屏幕截图中,我拿着一个单独的项目:
将单元格放置到位。
但是,当我选择多个单元格时,会出现“禁止进入”符号,单元格不会重新排序:
如果从其他应用程序中选择多个项目,则可以正常工作,例如从iMessage中拖动多个消息:
是否可能在仅具有本地项目的情况下重新排序表视图,以便更快地重新排序?
以下是我的代码:
UITableViewDropDelegate
和UITableViewDragDelegate
代理时,可以一次重新排序单个项目/单元格,但是否可能支持处理多个?例如,在此屏幕截图中,我拿着一个单独的项目:
![Dragging a single item/cell](https://istack.dev59.com/lWJ1q.webp)
但是,当我选择多个单元格时,会出现“禁止进入”符号,单元格不会重新排序:
![Multiple selection Drag and Drop with no entry sign](https://istack.dev59.com/4q4eM.webp)
![Multiple selection Drag and Drop from iMessage](https://istack.dev59.com/r4wtU.webp)
以下是我的代码:
UITableViewDragDelegate
extension DotViewController: UITableViewDragDelegate {
func tableView(_ tableView: UITableView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] {
return [getDragItem(forIndexPath: indexPath)]
}
func tableView(_ tableView: UITableView, itemsForAddingTo session: UIDragSession, at indexPath: IndexPath, point: CGPoint) -> [UIDragItem] {
return [getDragItem(forIndexPath: indexPath)]
}
func getDragItem(forIndexPath indexPath: IndexPath) -> UIDragItem {
// gets the item
}
}
UITableViewDropDelegate
extension DotViewController: UITableViewDropDelegate {
func tableView(_ tableView: UITableView, canHandle session: UIDropSession) -> Bool {
return true
}
func tableView(_ tableView: UITableView, dropSessionDidUpdate session: UIDropSession, withDestinationIndexPath destinationIndexPath: IndexPath?) -> UITableViewDropProposal {
return UITableViewDropProposal(operation: .move, intent: .insertAtDestinationIndexPath)
}
func tableView(_ tableView: UITableView, performDropWith coordinator: UITableViewDropCoordinator) {
// Handles Drop
}
}
viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
tableView.dragDelegate = self
tableView.dropDelegate = self
tableView.dragInteractionEnabled = true
}
UITableViewDragDelegate
吗? - Geoff Hackworth